C ++程序在终止之前不显示输出

时间:2016-04-21 04:14:55

标签: c++ xcode

我在Xcode中编写了一个c ++程序。它是这样的:

int main()
{
   func();
}
void func()
{
   while(true)
   {
      cout<<"Something here";
      if(func2()==1)
          return true;
   }
}

//some func2() function
int func2(){
   static int i=100;
   i--;
   return i
}

这不是确切的程序。它只是我所做的模型。我不希望程序提前终止,但我希望它在屏幕上打印“Something here”,以便我知道程序的进度。但它没有打印任何东西。当我没有无限循环时,我尝试了循环10次,在程序终止后打印了10“Something here”。所以我猜它不会立即输出到控制台。此外,当我查看调试区域时,func2实际上被多次调用。所以程序按照我的预期工作,只是不立即打印。我不确定为什么会这样?有没有人用Xcode体验过这个?

2 个答案:

答案 0 :(得分:2)

cout输出被缓冲:它将数据存储在内存中,并定期将其缓冲区刷新到实际的输出文件中。您可以通过发送flush操纵器,endl操纵器(换行符+刷新)或手动调用cout.flush()来强制刷新。

答案 1 :(得分:0)

您也可以在func()

之上移动main()