11

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

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

2 回答 2

18

你没有刷新你的输出。

std::cout << "||" << std::flush;
于 2012-05-11T15:38:48.640 回答
10

您可能在这里看到的是输出被缓冲的效果。通常,在使用之前不会实际写入输出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);
}
于 2012-05-11T15:38:42.520 回答