【发布时间】:2014-04-16 05:11:00
【问题描述】:
我知道endl 或调用flush() 会刷新它。我也知道当你在cout 之后调用cin 时,它也会刷新。以及程序退出时。是否还有其他情况cout 刷新?
我只是写了一个简单的循环,并没有刷新它,但我可以看到它正在打印到屏幕上。为什么?谢谢!
for (int i =0; i<399999; i++) {
cout<<i<<"\n";
}
完成的时间也和endl一样,都是7秒左右。
for (int i =0; i<399999; i++) {
cout<<i<<endl;
}
【问题讨论】:
-
这是一个实现细节,总是取决于输出是否被重定向。如果不是,那么出于显而易见的原因,冲洗是自动的,您希望立即看到您遇到的任何内容。大多数 CRT 都有一个 isatty() 辅助函数,用于确定是否需要自动刷新。