2012-12-16 241 views
1

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

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

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

回答

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