为什么cout早早出现?

时间:2017-10-11 17:11:07

标签: c++ windows gcc gnu flush

我一直在学习如何使用cout进行冲洗,所以我决定进行快速测试。

#include <iostream>
#include <unistd.h>

using namespace std;

int main()
{
    cout << "Line 1..."; // OR cout << "Line 1..." << flush;

    usleep(500000);

    cout << "\nLine 2" << endl;

    cout << "Line 3" << endl ;

    return 0;
}

在上面给出的情况下,预期输出是:
第1行......
第2行 3号线 在延迟一段时间后完全打印出来。但是,在其中的场景中 包含"<< flush;",预期结果是第1行立即打印,然后经过一段延迟后,第2行和第3行打印。

这些预期的输出仅在我使用以下命令在Linux机器上编译程序时发生:

g++ -o myFile.out myFile.cpp -Wall

然后使用:

运行它
./myFile.out

当我在我的Windows机器上运行这些相同的代码时,无论是"<< flush;"的插入,都会立即显示第1行。为什么会这样?

应该注意的是,在我的Windows机器上,我正在通过codeblocks x64编译和运行我的代码。根据Codeblocks设置&gt;编译器&gt;工具链可执行文件,我的C ++编译器是&#34; mingw32-g ++。exe&#34;。这不像我之前在Linux上运行g++的编译器一样吗?谢谢!

0 个答案:

没有答案