只能手动刷新计数

Flush cout manually only

本文关键字:刷新      更新时间:2023-10-16

据我所知,将std::endl流式传输到std::cout将冲洗它。我知道这种行为对大多数应用程序来说是有意义的。

我的问题是,我有一些输出使用多个std::endl,因此刷新输出。这对我的程序的性能来说真的很糟糕,而且由于我经常跳来跳去,还会导致很多图形故障。

所以我的问题是,如果我可以告诉std::cout等待下一次刷新,直到我显式调用std::cout.flush()或流std::flushstd::cout
如果这是可能的,我也想知道我如何才能扭转这一点,因为它并不总是对我有意义。

使用std::cout << 'n'代替std::endl。这避免了每行之后的同花顺。std::endl将始终刷新,因为这是它的目的。没有选项可以禁用该行为。但是,根本不需要使用std::endl。最终,由于std::cout的缓冲区是有限的,因此无法避免所有刷新,因此无论使用std::endl还是'n',最终都会刷新输出。

如果您想为标准输出增加缓冲区大小,您可以尝试为cout增加缓冲区。