C库函数从键盘检查按键(在linux中)

是否有任何C库函数来检查键盘上的按键(我在linux机器上工作)。

来自头文件stdio.h getchar()返回stdin中的下一个字符。 那可能就是你要找的东西。

以下代码将从stdin流输出第一个char:

 #include  int main (int argc, char **argv){ char c = getchar(); printf("Char: %c", c); return 0; } 

还有其他function可以在不阻塞的情况下执行此操作,即kbhit()和getch()。 但是头文件conio.h是非标准的,如果您使用的是Linux,则可能在您的平台上不可用。

所以你有两个选择:

1.)使用库ncurses你可以使用函数timeout()来定义getch()函数的超时,如下所示:

 initscr(); timeout(1000); char c = getch(); endwin(); printf("Char: %c\n", c); 

2.)自己实现kbhit()而不使用ncurses。 这里有一个很大的扩展。 您必须自己测量时间并循环直到达到超时。 要在C中测量时间,stackoverflow上有很multithreading – 你只需要搜索它。 然后你的代码看起来像这样:

 while(pastTime() < YOUR_TIMING_CONSTRAINT){ if (kbhit()){ char c = fgetc(stdin); printf("Char: %c\n", c); } } 

您可以使用getchar()getc(stdin) ,它们是C中的标准函数。它们将字符回显到已按下的终端。

甚至是getch() 。优点是,它不会回显按下终端的字符。 注意getch()不是标准C的一部分。您可以为getch()编写自己的函数或使用curses.h