清除输入缓冲区
问题描述:
我试图通过使用kbhit
来实现按任意键继续功能,但是,在用户按下一个键例如a
后,它会在下一次我要求用户输入缓冲区时出现输入一个值。你如何清除输入缓冲区?清除输入缓冲区
我的代码按任何按钮继续下面。
void
press_any_key(void)
{
int b=0;
while (b==0)
{
b=kbhit();
}
}
答
I'm trying to implement the press any key to continue function by using kbhit
采取这一语句作为需要等待用户的键盘输入,以继续执行程序下面的代码做这项工作,
void press_any_key(void)
{
while(1)
{
if(kbhit())
ch = getch();
printf("You passed %c\n", ch);
}
}
注:以上片段不尝试清除输入缓冲区。然而kbhit()
是非标准的,而正确的方法是从stdin
读取一个字符使用fgetc
。