【问题标题】: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 键?

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

【问题讨论】:

    标签: c++


    【解决方案1】:

    详情请见Canonical vs Non-canonical Terminal Input

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-08
      • 2013-04-01
      • 2015-04-24
      • 2013-10-07
      • 2019-01-06
      • 1970-01-01
      • 2011-08-09
      • 2012-03-20
      相关资源
      最近更新 更多