首页 > 解决方案 > Linux 上的 getchar() 可以读取哪些键盘字符

问题描述

我有一个在 Ubuntu 上运行的 C++ 应用程序,它使用 getchar() 函数等待按键。没有使用输入,我只是用任何按键结束我的程序。

我注意到我基本上可以输入任何可打印的字符,但也可以输入一些不可打印的字符,例如escapebackspace键。没有触发我的程序结束的键是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

解决方案


所以事实证明 getchar() 没有捕获的键是修饰键。也许只是因为它们只是“修饰符”并且总是与另一个键一起使用来创建特定的字符。如果有人知道具体原因,我想知道。


推荐阅读