c编程检查按键是否按下而不停止程序

时间:2012-11-25 01:32:06

标签: c windows

如您所知,在Windows中使用getch()时,应用程序会等待您,直到您按下某个键,

如何在不冻结程序的情况下读取密钥,例如:

void main(){
  char   c;
  while(1){
  printf("hello\n");
  if (c=getch()) {
  .
  .
  .
  }  
}
谢谢。

2 个答案:

答案 0 :(得分:9)

您可以使用kbhit()检查是否按下了某个键:

#include <stdio.h>
#include <conio.h> /* getch() and kbhit() */

int
main()
{
    char c;

    for(;;){
        printf("hello\n");
        if(kbhit()){
            c = getch();
            printf("%c\n", c);
        }
    }
    return 0;
}

此处有更多信息:http://www.programmingsimplified.com/c/conio.h/kbhit

答案 1 :(得分:0)

我在Linux中的控制台应用程序中需要类似的功能,但Linux不提供kbhit功能。在搜索Google时,我在 -

找到了一个实现

http://www.flipcode.com/archives/_kbhit_for_Linux.shtml