为什么我的cout输出不会立即出现?

时间:2012-05-11 15:36:42

标签: c++

它不会打印放在循环中的字符串。该程序是在G ++的帮助下编写的,包含sys / types.h头文件

for(int i=0;i<9;i++)
{
    cout<<"||";
    sleep(1);
}

2 个答案:

答案 0 :(得分:14)

你没有冲洗你的输出。

std::cout << "||" << std::flush;

答案 1 :(得分:8)

您可能在这里看到的是缓冲输出的效果。通常,在使用std::endl之前,实际上不会写入输出。

for(int i=0;i<9;i++)
{
    // Flushes and adds a newline
    cout<< "||" << endl;
    sleep(1);
}

引擎盖std::endl正在添加换行符,然后使用std::flush强制输出到控制台。您可以直接使用std::flush来获得相同的效果

for(int i=0;i<9;i++)
{
    cout << "||" << flush;
    sleep(1);
}