Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C中轮询键盘键?_C - Fatal编程技术网

如何在C中轮询键盘键?

如何在C中轮询键盘键?,c,C,我正在寻找某种替代kbhit()for Mac的方法,它允许我轮询特定键盘键的状态。我唯一的要求是它不能被阻塞,或者要求我按回车键。我在这个网站上看到了一些类似的帖子,但它们似乎都被屏蔽了 我真的只想能够运行一个循环,并检查在每个循环过程中是否按下或未按下特定的键,而不会减慢或阻塞循环的其余部分。来自c-faq: “用于编写kbhit的代码片段集合” 在STDIN\u FILENO上的ncurses和epoll的组合在过去对我很有效(当然是完全单线程)。你能给我看一些可能解释你的意思的链接吗?谢

我正在寻找某种替代kbhit()for Mac的方法,它允许我轮询特定键盘键的状态。我唯一的要求是它不能被阻塞,或者要求我按回车键。我在这个网站上看到了一些类似的帖子,但它们似乎都被屏蔽了

我真的只想能够运行一个循环,并检查在每个循环过程中是否按下或未按下特定的键,而不会减慢或阻塞循环的其余部分。

来自c-faq:

“用于编写kbhit的代码片段集合”


STDIN\u FILENO
上的
ncurses
epoll
的组合在过去对我很有效(当然是完全单线程)。你能给我看一些可能解释你的意思的链接吗?谢谢,只是
ncurses
提供了
getch
函数,它与您的
kbhit
类似。但是您需要一种方法来知道输入何时准备就绪,这就是
epoll
的输入位置——否则您的程序将不得不在键盘上阻塞读取。