我知道如何使用事件来测试某个键是否被按下,但在C语言中我从未发现如何做到这一点。
我真正需要的是一个监听向上、向下、向左和向右箭头键的“KeyListener”。我需要它在 Linux 中工作,因此不需要Windows库。如果可能,不使用第三方库对我来说是最好的选择。
我想要的伪代码:
int main() {
// key listener {
// if(key == up) { // do something }
// if(key == down) { // do something }
// if(key == left) { // do something }
// if(key == right) { // do something }
// }
}
2条答案
按热度按时间pxyaymoc1#
也可以使用SDL来读取键盘。
来源:http://www.libsdl.org/docs/html/guideinputkeyboard.html
wydwbb8l2#
这里有一个黑客基于我的另一个答案在这里:Capture characters from standard input without waiting for enter to be pressed。我在C或C++中使用bash系统调用来读取和解析箭头键按下。箭头键按下是3个字符,所以我一次解析3个字符,并找出是哪个箭头键。
无需按Enter键(这与使用
getc()
命令不同,该命令仅在按Enter键时返回)。按下箭头键后会立即检测到它们。read_system_call_via_pipe__arrow_keypresses.c:
示例构建和运行输出: