getchar - Linux 上的 getchar() 可以读取哪些键盘字符
问题描述
我有一个在 Ubuntu 上运行的 C++ 应用程序,它使用 getchar() 函数等待按键。没有使用输入,我只是用任何按键结束我的程序。
我注意到我基本上可以输入任何可打印的字符,但也可以输入一些不可打印的字符,例如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() 没有捕获的键是修饰键。也许只是因为它们只是“修饰符”并且总是与另一个键一起使用来创建特定的字符。如果有人知道具体原因,我想知道。
推荐阅读
- terraform - 遍历文件函数的映射
- javascript - type="module" javascript 文件是否都是相互隔离的?
- python - 将多个列字符串连接成一列
- ios - MacInCloud - Xcode 意外退出 (10.3)
- react-native - 如何防止 React Native FlatList 消费者由于状态数据增加而导致应用程序内存膨胀?
- notepad++ - 如何在记事本++中激活自动隐藏文件夹边距样式?
- scala - 如何在单独的文件中读取带有标题定义的 CSV 文件?
- c++ - 使用容器中元素的别名使用 std::list::remove 删除元素是否正确?
- html - 如何在包含的 div 之间设置空间?
- c++ - C++:私有类指针成员返回未定义的值