据我所知,将std::endl
传输到std::cout
会刷新它。我认为这种行为对大多数应用程序都有意义。
我的问题是我有一些使用多个std::endl
的输出,因此会刷新输出。这对于我的程序的性能来说真的很糟糕,并且因为我跳得很多而引起很多图形故障。
所以我的问题是,如果我明确呼叫std::cout
或将std::cout.flush()
发送到std::flush
,我可以告诉std::cout
等待下次同花。
如果这是可能的,我也想知道我如何能够扭转这一点,因为它对我来说并不总是有意义。
答案 0 :(得分:6)
使用std::cout << '\n'
代替std::endl
。这避免了每一行后的冲洗。 std::endl
将永远冲洗,因为这是它的目的。没有选项可以禁用该行为。但是,根本不需要使用std::endl
。
如果要增加标准输出的缓冲区大小,可以尝试increase buffer for cout。