在Linux

时间:2018-04-26 08:23:47

标签: getchar

我有一个在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不等待换行符并且不回应。

2 个答案:

答案 0 :(得分:1)

因此,事实证明getchar()没有捕获的键是Modifier键。也许只是因为它们只是简单的修饰符&#34;并始终与另一个键一起使用以创建特定的字符。如果有人知道具体原因,我想知道。

答案 1 :(得分:-1)

getcharstdin读取,而不是直接从键盘读取。你错过的那一点是你假设的“键盘字符”所暗示的。这错过了从按键到字符的转换。例如,按键 Shift + a 产生A。如何输入à取决于xact键盘配置。