如何通过" puts"来解释奇怪的输出。在c ++中?

时间:2015-05-10 13:05:34

标签: c++

我正在阅读其他人编写的一段代码,有这样的一行:

cout << "Data Loaded" << endl;

看起来并不奇怪,但实际输出是:

[18607330327, 18790481919] [19144201237, 19327352831] [20754813973, 20937965567] [21291684885, 21474836479] [21474836482, 21653864362] [22011707392, 22190735274] [23622320128, 23801348010] [24159191040, 24338218922] [27197264917, 27204255743] [27205653525, 27212644351] [27230819349, 27230959453] [27233615872, 27235153757] [30064771072, 30067638186] [30073159680, 30076026794] [30098325504, 30098440106] [30098456576, 30098536200] Data Loaded

额外输出来自哪里?如果我评论那条线,那么就没有输出。

然后我添加<cstdio>并将该行替换为puts("Data Loaded"),仍然可以打印额外的信息。

1 个答案:

答案 0 :(得分:4)

cout是一个缓冲的输出流,而endl不仅会创建一个新行,还会刷新缓冲区。如果没有刷新缓冲区,可能会发生您没有看到前一个cout的输出。