Linux 上的 getchar() 可以读取哪些键盘字符
Which keyboard characters can be read with getchar() on Linux
我在 Ubuntu 上有一个 C++ 应用程序 运行,它使用 getchar() 函数等待按键。没有使用输入,我只是用任何按键结束我的程序。
我注意到我基本上可以输入任何 printable character, but also some unprintable 字符,例如 escape 和 backspace 键。没有触发程序结束的键是 shift 和 ctrl.
等键
所以我的问题是,getchar() 读取哪些按键?我该如何对它们进行分类,因为显然不仅可打印字符会触发 getchar()?
我无法在手册页或 C++ 参考中找到答案。
这基本上就是我写的所有代码:
std::cout << "Ready for input ..." << std::endl;
std::getchar();
std::cout << "A key was pressed, landing ..." << std::endl;
请注意,我确实操纵 termios 不等待换行符并且不回显。
getchar
从 stdin
读取,而不是直接从键盘读取。您对 "keyboard characters" 的假设暗示了您遗漏的那一点。这缺少从 key presses 到字符的翻译。例如,按键按下 Shift+a 产生 A
。如何输入 à
取决于 xact 键盘配置。
所以结果是 getchar() 没有捕捉到的键是 Modifier 键。也许只是因为它们只是 "modifiers" 并且总是与另一个键一起使用来创建特定的字符。如果有人知道具体原因,我想知道。
我在 Ubuntu 上有一个 C++ 应用程序 运行,它使用 getchar() 函数等待按键。没有使用输入,我只是用任何按键结束我的程序。
我注意到我基本上可以输入任何 printable character, but also some unprintable 字符,例如 escape 和 backspace 键。没有触发程序结束的键是 shift 和 ctrl.
等键所以我的问题是,getchar() 读取哪些按键?我该如何对它们进行分类,因为显然不仅可打印字符会触发 getchar()?
我无法在手册页或 C++ 参考中找到答案。
这基本上就是我写的所有代码:
std::cout << "Ready for input ..." << std::endl;
std::getchar();
std::cout << "A key was pressed, landing ..." << std::endl;
请注意,我确实操纵 termios 不等待换行符并且不回显。
getchar
从 stdin
读取,而不是直接从键盘读取。您对 "keyboard characters" 的假设暗示了您遗漏的那一点。这缺少从 key presses 到字符的翻译。例如,按键按下 Shift+a 产生 A
。如何输入 à
取决于 xact 键盘配置。
所以结果是 getchar() 没有捕捉到的键是 Modifier 键。也许只是因为它们只是 "modifiers" 并且总是与另一个键一起使用来创建特定的字符。如果有人知道具体原因,我想知道。