This question already has answers here:
How to handle key press events in C++

(2 个回答)


6年前关闭。




我想看看用户按下了哪个键。

我知道有 cin()getline(cin, var) 但我不想输入,我想获取键的编号(索引,或调用它的代码?)。

例如,我想知道用户是否按下了 F1F10 或 Enter 或 Escape,然后作为返回做一些正确的事情。

例如:
if(user_has_pressed_escape)
{
 exit_the_console();
}

最佳答案

这可以通过操作系统自己的 API 获得。不同的操作系统有不同的 API(例如 android 根本没有 F10 键)。

通常您会使用第三方库来包装 API,以便您可以独立于操作系统编写代码。 3rd 方库有很多选择: SDLQTwxWidgetsGTK 等等。

这些库对您隐藏了与特定 OS API 的交互,让您一次编码并在多种类型的系统上运行。但是要了解它的工作原理,您可以查看每个操作系统文档。

例如在 Windows 上 GetKeyboardStatePeekMessage
在 Linux X11 上:XQueryKeymap 或通过 XPeekEvent

关于C++ 如何获取键盘按键值(或数字/代码),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24532048/

10-14 12:05
查看更多