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;
4

3 回答 3

2

一个问题是

 saveChoice == "Y"

你应该写在哪里

saveChoice == 'Y'

同样对于“N”

在第一种情况下,您要比较charconst char *是 second 是指针,而不是字符。

break无论if条件是真还是假,您的语句都将始终执行。

于 2013-12-18T03:37:42.280 回答
1

你在做

if(savechoice =="Y") 

它应该是

if(savechoice == 'Y') 

'N' 也是如此,因为您使用char变量来存储用户输入。

于 2013-12-18T03:39:05.183 回答
1

if你的陈述和陈述都有问题else if

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

您正在将 achar与 a进行比较string。你必须与char这样charif(saveChoice == 'Y')比较else if(saveChoice == 'N')

永远记住single quote for single character!!!

于 2013-12-18T04:03:00.890 回答