在执行一些测试后,我注意到它printf比cout。我知道它取决于实现,但是在我的Linux机器上printf要快8倍。所以我的想法是混合两种打印方法:我想cout用于简单的打印,我计划printf用于产生巨大的输出(通常是循环的)。我认为这样做是安全的,只要我不忘记在切换到其他方法之前先冲洗即可:
cout << "Hello" << endl;
cout.flush();
for (int i=0; i<1000000; ++i) {
printf("World!\n");
}
fflush(stdout);
cout << "last line" << endl;
cout << flush;
这样可以吗
更新:感谢您的宝贵意见。答案摘要:如果要避免棘手的解决方案,只需不使用endl,cout因为它会隐式刷新缓冲区。使用"\n"代替。如果您产生大量输出,可能会很有趣。
至尊宝的传说