今天在编写c++程序时,在for内部使用cout输出出现了一个bug,需要使用flush解决
大概的框架如下
for(int i=0;i<10;i++)
{
cout<<"i="<<i;
for(int j=0;j<1;j++)
sleep(1);
}
cout<<endl;
运行程序后,结果是i=0i=1i=2i=3i=4i=5i=6i=7i=8i=9
,但是这个结果是在大概10秒后一起出现的,这显然不是我想要的结果,解决方案是加个flush刷新输出流,如下:
for(int i=0;i<10;i++)
{
cout<<flush<<"i="<<i;
for(int j=0;j<1;j++)
sleep(1);
}
cout<<endl;
这样就解决了