【发布时间】:2018-04-26 08:23:47
【问题描述】:
我有一个在 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 不等待换行符并且不回显。
【问题讨论】:
-
不都是字符吗?在 Windows 中,它几乎适用于按键。你写过代码吗?
-
如果你想要一种简单的方法来处理它,请尝试使用 curses 库
-
我添加了一个代码示例@MasOOd.KamYab。
-
我没有问我如何处理它@Ôrel,只是 getchar() 是如何工作的。
-
code.woboq.org/userspace/glibc/libio/getchar.c.html
getchar()使用缓冲输入,如果你真的需要,你可以读取原始输入
标签: getchar