据我所知,将 std::endl
流式传输到 std::cout
将刷新它。我知道这种行为对大多数应用程序都是有意义的。
我的问题是我有一些使用多个 std::endl
的输出,因此刷新了输出。这对我的程序的性能非常不利,并且还会导致很 multimap 形故障,因为我经常跳来跳去。
所以我的问题是我是否可以告诉 std::cout
等待下一次刷新,直到我明确调用 std::cout.flush()
或流 std::flush
到 std::cout
.
如果这是可能的,我也想知道我如何才能扭转它,因为它对我来说并不总是有意义。
最佳答案
使用 std::cout << '\n'
而不是 std::endl
.这避免了在每一行之后刷新。 std::endl
将始终冲洗,因为这是它的目的。没有禁用该行为的选项。但是,没有要求使用 std::endl
根本。最终,您无法避免将所有刷新作为 std::cout
的缓冲区。是有限的,所以最终,无论您是否使用 std::endl
,输出都会被刷新或 '\n'
.
如果你想增加标准输出的缓冲区大小,你可以试试increase buffer for cout .
关于c++ - 仅手动冲洗 cout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30314985/