我正在尝试使用kbhit
来按任意键来继续功能,但是,在用户按下例如a
的键之后,它将在下一次出现在输入缓冲区中要求用户输入值。你如何清除输入缓冲区?
我的代码按下任何按钮继续下面。
void
press_any_key(void)
{
int b=0;
while (b==0)
{
b=kbhit();
}
}
答案 0 :(得分:0)
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
读取字符。