我在 C++ 中使用 _getch() 并且我想知道它是不是可以检测到箭头键而不是其他键
Posted
技术标签:
【中文标题】我在 C++ 中使用 _getch() 并且我想知道它是不是可以检测到箭头键而不是其他键【英文标题】:I'm using _getch() in C++ and i want to know if it can detect the arrow keys instead of the other keys我在 C++ 中使用 _getch() 并且我想知道它是否可以检测到箭头键而不是其他键 【发布时间】:2021-01-11 16:32:57 【问题描述】:如果你们想知道,它是一个控制台应用程序,我真的不介意只使用 WASD,但我不介意能够使用箭头键。
char _input = 0;
char _up = 'Z';
char _down = 'S';
char _left = 'Q';
char _right = 'D';
do
_input = _getch();
switch (_input)
case 'Z':
case 'z':
_input = _up;
break;
case 'Q':
case 'q':
_input = _left;
break;
case 'S':
case 's':
_input = _down;
break;
case 'D':
case 'd':
_input = _right;
break;
while (_input == 0);
【问题讨论】:
嘿!你能添加一些你写的代码吗?为了能够帮助您,重要的是要了解您实际尝试做什么。理解特定代码中的流程所需的最少代码应该足够了(方法或类,如果它很小)。 我不认为这很重要,但已经完成了 方向键可能需要两次读取。读取的第一个值是扩展代码,然后第二个键是箭头键值。取决于操作系统。 操作系统是windows 10 如果您对 _getch() 或 _getche() 的调用返回 0 或 0xE0,那么下一次对 _getch() 的调用将为您提供特殊的键码。 【参考方案1】:这里是original answer:
检查以下值:
KEY_UP = 72
KEY_DOWN = 80
KEY_LEFT = 75
KEY_RIGHT = 77
喜欢
#define KEY_UP 72
...
...
do
_value= _getch();
switch(_value)
case KEY_UP: ...
...
while (...);
...
以及定义所有键盘值的docs。
【讨论】:
以上是关于我在 C++ 中使用 _getch() 并且我想知道它是不是可以检测到箭头键而不是其他键的主要内容,如果未能解决你的问题,请参考以下文章