清除输入缓冲区

时间:2012-12-16 10:19:57

标签: c

我正在尝试使用kbhit来按任意键来继续功能,但是,在用户按下例如a的键之后,它将在下一次出现在输入缓冲区中要求用户输入值。你如何清除输入缓冲区?

我的代码按下任何按钮继续下面。

void
press_any_key(void)
{
  int b=0;
  while (b==0) 
  {
    b=kbhit();
  }         
}

1 个答案:

答案 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读取字符。