在c++中只读取1个字符
read only 1 character in c++
可能重复:
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)。
相关文章:
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 将stl字符串缩小到小于15个字符的容量
- 带有多个字符分隔符的正则表达式
- 我想在C++中读取一些多个字符,但它永远不会读取第二个字符
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- 如何删除字符串中的前 2 个字符(如果它有"-")
- 注册表正在设置 1 个字符
- 使用类 ?C++ 和 SFML 以及标题中的 15 个字符
- 如何忽略第一个字符输入后的所有内容
- std::stoi 只转换前几个字符
- 仅读取文件末尾的最后 3 个字符,并将其另存为 int
- C++字符数组不接受超过 4 个字符的输入
- 在大小为 10 的 char 数组中输入超过 10 个字符的字符串并输出时,它会显示整个数组而不是前 10 个数组.为什
- 增量生成 - 错误:字符串的第一个字符应'0'或'1'
- 对于多个字符(如 ETX/STX 对),是否有类似于 std::quote 的东西
- 在函数中连接两个字符,并在 C++ 中返回输出
- 如何通过组合多个字符数组来创建字符数组?
- 对c++中的输入使用getline函数时忽略第一个字符
- 当对字符变量使用toupper()时,所述char变量输出多个字符.我该如何防止这种情况发生
- (Arduino)我可以跳过parseInt()中的多个字符吗