在以下代码中:
#include <stdio.h>
int main()
{
char foo;
scanf("%c", &foo);
printf("%c\n", foo);
getchar();
return 0;
}
如果用户输入了任何内容,则getchar()
被“忽略”,但是当只按Enter键时,getchar()
要求输入。一个可能的解决方案是将第二个getchar()
放在第二位,但是如果第一个输入为空,则用户必须按两次Enter键,而且如果第一个输入中有缓冲区,它也将被忽略。我想要的是让用户仅按一次Enter键,无论用户输入什么内容。我已经读过有关fflush(stdin)
的信息,但它对我没有用。因此,基本上,是否有办法在getchar()
之前清除输入缓冲区以使其起作用?
通过不调用getchar();