1

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

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

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

1 回答 1

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(),这是非标准的,正确的方法是从stdinis using读取字符fgetc

于 2012-12-16T14:40:33.803 回答