据我所知,将std::endl
转换为std::cout
会刷新它。我明白,这种行为对大多数应用程序都有意义。手动刷新cout只有
我的问题是,我有一些输出使用多个std::endl
's并因此刷新输出。这对于我的程序的性能来说真的很糟糕,并且由于我跳了很多,所以还导致了很多图形故障。
所以我的问题是,如果我可以告诉std::cout
与下次的冲水等到我明确地调用std::cout.flush()
或流std::flush
到std::cout
。
如果这是可能的,我也想知道我可以如何扭转这种情况,因为它对我来说并不总是合情合理的。
'std :: endl'是对'std :: ostream :: flush'的明确调用,然后写入一个换行符。如果你不想'std :: endl'来刷新,不要使用'std :: endl'。 – 0x499602D2
@ 0x499602D2 *“'std :: endl'是对'std :: ostream :: flush'的明确调用,然后写入换行符”* - 完全相反...... newline * then * flush。 –