c强制std :: cout flush(打印到屏幕)

我有如下代码:

std::cout << "Beginning computations..."; // output 1
computations();
std::cout << " done!\n";                  // output 2

然而,问题是经常输出#1和输出#2(虚拟地)同时出现。也就是说,经常输出#1不会打印到屏幕,直到computeations()返回。由于输出#1的整个目的是为了表明后台发生了某些事情(因此鼓励用户的耐心),这个问题并不好。

在计算()调用之前有没有办法强制std :: cout缓冲区打印?或者,是否有其他方式(使用除std :: cout之外的其他方式)打印到标准版,这将解决这个问题?

只需插入std::flush

std::cout << "Beginning computations..." << std::flush;

另请注意,插入std::endl也将在写入换行符后刷新。

翻译自:https://stackoverflow.com/questions/22026751/c-force-stdcout-flush-print-to-screen

转载注明原文:c强制std :: cout flush(打印到屏幕)