我想要这段代码:
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;
答案 0 :(得分:2)
一个问题是
saveChoice == "Y"
你应该写的地方
saveChoice == 'Y'
类似于“N”
在第一种情况下,您将char
与const char *
进行比较,其中第二个是指针,而不是字符。
无论break
条件为真还是假,您的if
语句都将被执行。
答案 1 :(得分:1)
你在做什么
if(savechoice =="Y")
应该是
if(savechoice == 'Y')
同样适用于'N',因为您使用 char 变量来存储用户输入。
答案 2 :(得分: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
!!!