c linux和windows中的键盘扫描码

时间:2015-02-27 15:41:01

标签: c++ c linux

好吧所以我有一个我写的程序,基本上我将接受键盘键的输入,如左箭头,右箭头,上下等等,我的问题是,扫描的最佳选择是什么在这些键中,这样我就可以在linux和windows中运行我的程序

我正在扫描的是什么?我应该扫描ascii值并将它们存储在int中吗?字符?或者是另一种方法吗?我搜索了互联网,我发现键盘扫描码的kex值是e0 4b e0 4d e0 48 e0 50

但是当我实际使用getchar()扫描值并将它们存储到整数中时,每按下一个键就得到4个值,例如27 91 67 10,27 91 68 10

据我所知,每个按键都有新闻稿和附加的其他值,所以我应该扫描67 68等等吗?

还是有其他方法可以做到这一点

我正在使用c语言编写程序

2 个答案:

答案 0 :(得分:1)

在Linux中,您似乎看到了ANSI escape sequences。它们由文本终端使用,并以Escape字符开头,即'\x1b'(十进制27)。

这可能不是你想要的,如果你想用直接的,类似游戏的方式制作键盘控制的东西,你需要使用" raw"输入。这里有很多参考资料,例如ncurses。

答案 1 :(得分:0)

打开终端并使用命令xev。然后,您可以按任意键并查看其相应的代码。您也可以移动并单击鼠标以查看其中发生的情况。