if语句不正确

时间:2013-12-18 03:32:13

标签: c if-statement getch

我想要这段代码:

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;

3 个答案:

答案 0 :(得分:2)

一个问题是

 saveChoice == "Y"

你应该写的地方

saveChoice == 'Y'

类似于“N”

在第一种情况下,您将charconst 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")

您正在将charstring进行比较。您必须与char进行比较,并与char进行比较     if(saveChoice == 'Y')else if(saveChoice == 'N')

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