C语言 如何使用 getchar 读取并正确比较它?



我是 C 语言的初学者,不明白为什么遵循我的部分代码不起作用:

char yn;
printf("Play again(y/n)?n");
while(yn!='y' && yn!='n'){
yn=getchar();
printf("Input:%cn",yn);
if(yn!='y' && yn!='n') printf("Please put in y or n!n");
}

首先,它从缓冲区或其他东西中读取无缝随机数字,但即使我输入 y 或 n,它仍然保持循环,即使很难确认 yn 是 y 或 n。

使用do while循环更方便。

char yn;
do{
// Your play code goes here
printf("Play again(y/n)?n");
printf("Input:%cn",yn);
yn=getchar();
while(yn!='y' && yn!='n'){
printf("Please put in y or n!n");
yn=getchar();
}
}while(yn=='y' || yn=='Y');     //Not need to check 'n'

最新更新