2013-12-18 3 views
0

Я хочу, чтобы этот код:ли не завершен, если заявление правильно

IF unsaved packets is greater or = 1, 
then 
print "There are unsaved packets" 
     "Would you like to saved them?" 
     "Type Y for Yes or N for No" 
Get user input 
     IF User input = Y then function save 
ELSE IF User input = N then exit 
     ELSE Return to menue 

вот мой текущий код, проблема в том, что не будет принимать входной сигнал на всех, и если он делает это не использует это определить, что происходит после.

if(unsavedPackets >= 1) 
{ 
    puts("There are currently unsaved packets in the memory"); 
    puts("\nWould you like to save them?"); 
    puts("\nType Y for Yes or N for No"); 
    getch(saveChoice); 
    printf("%c", saveChoice); 
    if(saveChoice == "Y") 
    { 
     puts("Saving records"); 
     save(recordCount, records); 
     exit(1); 
    } 
    else if(saveChoice == "N") 
    { 
     exit(1); 
    } 
    else 
    { 
     printf("Returning to main menu"); 
    } 
} 
break; 
+1

Я думаю, что вы хотели 'saveChoice = getch()', а не 'getch (saveChoice)'. – chux

+0

Это тоже сработало бы, спасибо! – user3103598

+0

'getch (saveChoice)' _should_ дал вам предупреждение (или ошибку). Какой бы компилятор вы ни использовали, включите его дополнительные настройки. Вы сэкономите время. – chux

ответ

2

Одна проблема заключается в том, что

saveChoice == "Y" 

, где вы должны написать

saveChoice == 'Y' 

Аналогично для "N"

В первом случае, вы сравниваете char с const char * где второй - указатель, а не символ.

Ваш оператор break всегда будет выполнен независимо от того, if условие истинно или ложно.

1

Вы делаете

if(savechoice =="Y") 

должно быть

if(savechoice == 'Y') 

и аналогично для 'N', так как вы используете обугленного переменную для хранения данных, вводимых пользователем.

+0

работает ли команда getch? – user3103598

+0

Следует также попробовать с get (savechoice), а затем в ваших условиях if, использовать if (savechoice [0] == 'Y'), аналогично для N (make savechoice - строковая переменная) – SoulRayder

+0

Спасибо, теперь у меня есть он работает! Большое спасибо – user3103598

1

У вас возникли проблемы с оператором if, а также с заявлением else if.

if(saveChoice == "Y") 
and 
else if(saveChoice == "N") 

Вы сравниваете char с string. Вы должны сравнить с char с char как это if(saveChoice == 'Y') и else if(saveChoice == 'N')

Всегда помните single quote for single character !!!

 Смежные вопросы

  • Нет связанных вопросов^_^