2

この Yes/No ループが機能しない理由がわかりません。助言がありますか?入力が「Y」の場合。ループを実行してから、もう一度 Y または N を要求したいだけです。Y の場合は成功を出力し、N の場合はさようならステートメントを出力します。どういう理由ですか?

int main(){
    char answer;
    printf("\nWould you like to play? Enter Y or N: \n", answer);
    scanf("%c", &answer);
    printf("\n answer is %c");
    while (answer == 'Y'){
        printf("Success!");

        printf("\nDo you want to play again? Y or N: \n");
        scanf("%c", &answer);
    }
    printf("GoodBye!");
    return 0;
}
4

3 に答える 3

14

秒を次のように変更scanfします。

scanf(" %c", &answer);
//     ^

問題は、Y を入力して ENTER を押すと、新しい行がまだ入力バッファーにあり、それ%cを消費する前にスペースを追加することです。

于 2013-09-05T03:27:17.557 に答える