为啥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需要输入换行符? [复制]的主要内容,如果未能解决你的问题,请参考以下文章