为什么cin需要输入换行符?

时间:2014-03-19 21:55:42

标签: c++

在此代码中:

char ch;
while(cin.get(ch))
{
    std::cerr<<"got ch:"<<ch<<std::endl;
}

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

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

1 个答案:

答案 0 :(得分:5)

有关详细信息,请参阅Canonical vs Non-canonical Terminal Input

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

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

相关问题