为啥cin需要输入换行符? [复制]

Posted

技术标签:

【中文标题】为啥cin需要输入换行符? [复制]【英文标题】:Why does cin need newline to be entered? [duplicate]为什么cin需要输入换行符? [复制] 【发布时间】:2014-04-26 11:20:21 【问题描述】:

在这段代码中:

char ch;
while(cin.get(ch))

    std::cerr<<"got ch:"<<ch<<std::endl;

为什么在屏幕上打印“got ch:”之前我必须按 Enter 键?

有没有办法让字符在输入后立即回显?

【问题讨论】:

【参考方案1】:

详情请见Canonical vs Non-canonical Terminal Input。

是的,默认情况下,您必须在任何数据可用之前输入 return。

是的,有一些方法可以使用非规范输入,以便字符在输入后立即可用。然而,获得这种行为的机制在 Windows 和基于 Unix 的系统之间是完全不同的。

【讨论】:

以上是关于为啥cin需要输入换行符? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

cin, getline() 与 get() 的区别

换行符是不是保存在标准输入中?

为啥我的 Linux 文本文件(使用 echo 创建)以换行符结尾?我怎样才能删除它? [复制]

cin.get() 和 cin.getline() 之间的区别

如何在 C++ 中使用 cin 将所有空格读入字符串?

依旧是输入输出(存字符矩阵,空格,换行)