在c++中只读取1个字符

read only 1 character in c++

本文关键字:1个 字符 读取 c++      更新时间:2023-10-16

可能重复:
std::iostream是如何缓冲的?

这听起来可能很荒谬,但我怎么能在c++中从cin中读取一个字符(直到按下回车键,只有一个字符)?我试过操作符>>、get()、getchar.(),但它们都能读取一整行。

_getche()函数可以执行您想要的操作。

cin为缓冲输入。您需要"无缓冲"的输入。在不同的平台上可能会有所不同,除非您直接使用文件。

这样的东西可能会有所帮助:

http://www.cplusplus.com/forum/beginner/3329/

[EDIT],请记住,使用"缓冲"answers"非缓冲"是一个设计决策,两者都是合法的。cin上"缓冲输入"的"默认值"很有意义,因为用户会"退格"来更正输入行,而你不希望"混乱"充斥着你的程序。(而且,一般来说,像来自文件的"缓冲输入"会更高效。)

虽然这是特定于操作系统的,但在类似UNIX的操作系统中,您可以使用termios接口通过将其置于非规范模式来禁用终端上的输入缓冲:

termios t;
tcgetattr(STDIN_FILENO, &t);
t.c_lflag &= ~ICANON;
tcsetattr(STDIN_FILENO, TCSANOW, &t);

详见白蚁(3)。