只是学习C编程,并且坚持我确信Do/While循环的一些琐碎的东西我有一个代码块,要求用户点击E来退出程序:
char exitletter;
do {
printf ("Please hit E to exit the Program\n");
exitletter = getchar();
} while (exitletter !='E');
但是,如果用户输入了一个不正确的字符,它会打印“请点击E退出程序”两次。如果用户输入say abcd,则会打印五次消息。
有人能解释一下这里发生了什么事吗?
最佳答案
一个不同的答案虽然晚了:
你可以在看完这个字符后立即调用fflush
。
char exitletter;
do {
printf ("Please hit E to exit the Program\n");
exitletter = getchar();
fflush(stdin);
}
while (exitletter !='E');
这会像你期望的那样奏效。