【问题标题】:Update Linux's terminal screen in loop循环更新 Linux 终端屏幕
【发布时间】:2013-11-30 07:35:13
【问题描述】:

我在windows中写了以下简单的代码,在循环的每一步中,CMD中的点打印正常:

 for(int i=0;i<=5;i++)
 {
  cout<<i;
  Sleep(1000);
 }

但是Linux中的这段代码不会在循环的每一步中打印点,它会等待5秒,然后打印所有点:

 for(int i=0;i<=5;i++)
 {
  cout<<i;
  pause(1);
 }

如何在每个循环步骤中更新终端输出屏幕?

谢谢。

【问题讨论】:

    标签: c++ linux terminal


    【解决方案1】:

    要确保输出真正刷新到屏幕上,您需要调用flush:

    for(int i=0;i<=5;i++)
     {
      cout<<i;
      cout.flush();
      pause(1);
     }
    

    【讨论】:

    • 正确,这也有效:cout&lt;&lt;i&lt;&lt;flush;。它可以更方便,因为它是单线的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多