在此代码中:
char ch;
while(cin.get(ch))
{
std::cerr<<"got ch:"<<ch<<std::endl;
}
为什么我必须在屏幕上打印“got ch:”之前按Enter键?
有没有办法让字符在输入后立即回显?
答案 0 :(得分:5)
有关详细信息,请参阅Canonical vs Non-canonical Terminal Input。
是的,默认情况下,您必须在任何数据可用之前输入return。
是的,有一些方法可以使用非规范输入,以便字符在输入后立即可用。但是,在Windows和基于Unix的系统之间获得该行为的机制完全不同。