Linux中std :: cout的奇怪行为

joh*_*hny 1 c++ printing cout

我试图for使用2个嵌套循环打印结果std::cout.但是,结果不会立即打印到控制台,但会有延迟(在循环或程序完成后).

我不认为这种行为是正常的,在Windows打印下工作正常.该程序不使用线程.

哪里可能是问题?(Ubuntu 10.10 + NetBeans 6.9).

Mac*_*cky 9

std::cout是一个流,它是缓冲的.您可以通过以下几种方式进行冲洗:

std::cout.flush();

std::cout << std::flush;

std::cout << std::endl;  // same as:  std::cout << "\n" << std::flush`
Run Code Online (Sandbox Code Playgroud)


佐尼:

我使用std :: endl在循环之前刷新缓冲区.当打印代表循环内处理数据的百分比的点时出现问题.

如果您刷新缓冲区之前的周期,不影响输出周期.您必须在循环中或之后进行冲洗,以查看输出.