【发布时间】:2016-01-08 03:50:33
【问题描述】:
使用 cout 需要更多时间来输出对我不利的语句。但是当使用 cerr 时,输出会更快。为什么?
【问题讨论】:
-
在 Linux 中
std::cout/stdout是行缓冲的,而std::cerr/stderr没有缓冲,请参阅 stackoverflow.com/questions/3723795/… -
您如何确定它“更快”?
-
我的猜测是输出到
std::cerr或std::clog应该比std::cout慢(因为缓冲差异);你用<<std::flush或<<std::endl刷新输出了吗? -
更快可能意味着“出现得更快”。
-
然后按照@BasileStarynkevitch 所说的那样刷新流,如果您需要立即显示输出。请注意,这是以降低整体性能为代价的,但对于交互式程序,您可能可以容忍这种情况。
标签: c++