This question already has answers here:
How to handle key press events in C++
(2 个回答)
6年前关闭。
我想看看用户按下了哪个键。
我知道有
例如,我想知道用户是否按下了
例如:
(2 个回答)
6年前关闭。
我想看看用户按下了哪个键。
我知道有
cin()
或 getline(cin, var)
但我不想输入,我想获取键的编号(索引,或调用它的代码?)。例如,我想知道用户是否按下了
F1
或 F10
或 Enter 或 Escape,然后作为返回做一些正确的事情。例如:
if(user_has_pressed_escape)
{
exit_the_console();
}
最佳答案
这可以通过操作系统自己的 API 获得。不同的操作系统有不同的 API(例如 android 根本没有 F10 键)。
通常您会使用第三方库来包装 API,以便您可以独立于操作系统编写代码。 3rd 方库有很多选择: SDL 、 QT
、 wxWidgets
、 GTK
等等。
这些库对您隐藏了与特定 OS API 的交互,让您一次编码并在多种类型的系统上运行。但是要了解它的工作原理,您可以查看每个操作系统文档。
例如在 Windows 上 GetKeyboardState 或 PeekMessage
在 Linux X11 上:XQueryKeymap 或通过 XPeekEvent
关于C++ 如何获取键盘按键值(或数字/代码),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24532048/