我在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体验过这个?
答案 0 :(得分:2)
cout
输出被缓冲:它将数据存储在内存中,并定期将其缓冲区刷新到实际的输出文件中。您可以通过发送flush
操纵器,endl
操纵器(换行符+刷新)或手动调用cout.flush()
来强制刷新。
答案 1 :(得分:0)
您也可以在func()
块
main()