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

1つの問題は、

 saveChoice == "Y"

どこに書くべきか

saveChoice == 'Y'

「ん」も同様

最初のケースでは、2 番目が文字ではなくポインターである場所と比較charしています。const char *

条件が true または false に関係breakなく、ステートメントは常に実行されます。if

于 2013-12-18T03:37:42.280 に答える
1

あなたのif発言にもelse if発言にも問題があります。

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

charaと aを比較していstringます。このようなもの charと比較する必要があり、charif(saveChoice == 'Y')else if(saveChoice == 'N')

常に覚えておいてsingle quote for single characterください!!!

于 2013-12-18T04:03:00.890 に答える
1

あなたがやっている

if(savechoice =="Y") 

そのはず

if(savechoice == 'Y') 

ユーザー入力を格納するためにchar変数を使用しているため、「N」についても同様です。

于 2013-12-18T03:39:05.183 に答える