我有一个在Ubuntu上运行的C ++应用程序,它使用getchar()函数等待按键操作。输入没有使用,我只是用任何按键结束我的程序。
我注意到我基本上可以键入任何printable字符,但也可以键入一些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不等待换行符并且不回应。
答案 0 :(得分:1)
因此,事实证明getchar()没有捕获的键是Modifier键。也许只是因为它们只是简单的修饰符&#34;并始终与另一个键一起使用以创建特定的字符。如果有人知道具体原因,我想知道。
答案 1 :(得分:-1)
getchar
从stdin
读取,而不是直接从键盘读取。你错过的那一点是你假设的“键盘字符”所暗示的。这错过了从按键到字符的转换。例如,按键 Shift + a 产生A
。如何输入à
取决于xact键盘配置。