C中是/否循环

use*_*926 1 c scanf while-loop

我只是不明白为什么这个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;
}
Run Code Online (Sandbox Code Playgroud)

Yu *_*Hao 11

将第二个更改scanf为:

scanf(" %c", &answer);
//     ^
Run Code Online (Sandbox Code Playgroud)

问题是,当你输入Y并按下ENTER时,新行仍然在输入缓冲区中,在添加空格之前%c可以使用它.