Linux 上的键盘键码 table
keyboad key codes table on Linux
我正在学习 C++。
我正在测试用户按下哪个键的方式。我写了这段代码:
#include <signal.h>
#include <termios.h>
#include <stdio.h>
#include <math.h>
#define KEYCODE_L 0x44 // Left Arrow Key
#define KEYCODE_R 0x43 // Right Arrow Key
#define KEYCODE_U 0x41 // Up Arrow Key
#define KEYCODE_D 0x42 // Down Arrow Key
#define KEYCODE_Q 0x71 // Q Key
int main(int argc, char **argv)
{
// get the console in raw mode
tcgetattr(kfd, &cooked);
memcpy(&raw, &cooked, sizeof(struct termios));
raw.c_lflag &= ~(ICANON | ECHO);
// Setting a new line, then end of file
raw.c_cc[VEOL] = 1;
raw.c_cc[VEOF] = 2;
tcsetattr(kfd, TCSANOW, &raw);
puts("Reading from keyboard");
puts("---------------------------");
puts("Use arrow keys to move the robot.");
// get the next event from the keyboard
if (read(kfd, &c, 1) < 0)
{
perror("read():");
/**
* Reset console to its original mode.
*/
tcsetattr(kfd, TCSANOW, &cooked);
exit(-1);
}
switch (c)
{
case KEYCODE_R:
std::cout << "Right Arrow" << std::endl;
break;
case KEYCODE_L:
std::cout << "Left Arrow" << std::endl;
break;
case KEYCODE_U:
std::cout << "Up Arrow" << std::endl;
break;
case KEYCODE_D:
std::cout << "Down Arrow" << std::endl;
break;
}
}
在哪里可以找到我称为 KEYCODE_ 的所有这些值的 table?
我正在寻找包含所有键值的 table。我找到了 JavaScript table 但值不匹配。
这些是终端给你的Ascii码。您可以在 Linux.
中使用 showkey -a
命令查看它们
有关此命令的更多信息可在手册页和网上找到,例如 https://linux.die.net/man/1/showkey
我正在学习 C++。
我正在测试用户按下哪个键的方式。我写了这段代码:
#include <signal.h>
#include <termios.h>
#include <stdio.h>
#include <math.h>
#define KEYCODE_L 0x44 // Left Arrow Key
#define KEYCODE_R 0x43 // Right Arrow Key
#define KEYCODE_U 0x41 // Up Arrow Key
#define KEYCODE_D 0x42 // Down Arrow Key
#define KEYCODE_Q 0x71 // Q Key
int main(int argc, char **argv)
{
// get the console in raw mode
tcgetattr(kfd, &cooked);
memcpy(&raw, &cooked, sizeof(struct termios));
raw.c_lflag &= ~(ICANON | ECHO);
// Setting a new line, then end of file
raw.c_cc[VEOL] = 1;
raw.c_cc[VEOF] = 2;
tcsetattr(kfd, TCSANOW, &raw);
puts("Reading from keyboard");
puts("---------------------------");
puts("Use arrow keys to move the robot.");
// get the next event from the keyboard
if (read(kfd, &c, 1) < 0)
{
perror("read():");
/**
* Reset console to its original mode.
*/
tcsetattr(kfd, TCSANOW, &cooked);
exit(-1);
}
switch (c)
{
case KEYCODE_R:
std::cout << "Right Arrow" << std::endl;
break;
case KEYCODE_L:
std::cout << "Left Arrow" << std::endl;
break;
case KEYCODE_U:
std::cout << "Up Arrow" << std::endl;
break;
case KEYCODE_D:
std::cout << "Down Arrow" << std::endl;
break;
}
}
在哪里可以找到我称为 KEYCODE_ 的所有这些值的 table?
我正在寻找包含所有键值的 table。我找到了 JavaScript table 但值不匹配。
这些是终端给你的Ascii码。您可以在 Linux.
中使用showkey -a
命令查看它们
有关此命令的更多信息可在手册页和网上找到,例如 https://linux.die.net/man/1/showkey