C++ 在使用和不使用std::flush的情况下,我没有注意到输出中的任何差异

C++ 在使用和不使用std::flush的情况下,我没有注意到输出中的任何差异,c++,visual-studio-2015,iostream,flush,C++,Visual Studio 2015,Iostream,Flush,我试图理解std::flush的行为,但我没有注意到在使用和不使用flush的情况下,输出有任何差异,(即)在这两种情况下,每秒打印一个数字 我正在使用Visual Studio 2015。我的编译器是否自动刷新 我怎样才能注意到差异 下面是我从Quora那里得到的例子: int main() { for (int i = 1; i < 11; ++i) { Sleep(1000); cout<<i<<" "<&

我试图理解
std::flush
的行为,但我没有注意到在使用和不使用
flush
的情况下,输出有任何差异,(即)在这两种情况下,每秒打印一个数字

我正在使用Visual Studio 2015。我的编译器是否自动刷新

我怎样才能注意到差异

下面是我从Quora那里得到的例子:

int main()
{
    for (int i = 1; i < 11; ++i)
    {
        Sleep(1000);
        cout<<i<<" "<<flush; // same output when i run without flush
    }

    return 0;
}
intmain()
{
对于(int i=1;i<11;++i)
{
睡眠(1000);

如果在没有刷新的情况下写入后立即遇到segfault,您有时可能会注意到缺少输出。通常,输出也会在没有显式调用flush的情况下打印。Thank@churill这是唯一的方法吗?可能的副本请参阅副本上的可接受答案:“标准中没有严格的规则-只是endl将刷新,但实现可能会在它“喜欢”的任何时候刷新”。@RaHuL,如果您将输出重定向到文件(
program>out.txt
)然后在我运行的程序运行的同时查看该文件,您很可能会看到差异。至少在posix系统上是这样。不确定它在Windows上的行为。