簡體   English   中英

如何僅在C語言中更新打印輸出中的值?

[英]How to update values in printed output only in C?

我要打印一行:

for(i=0;i<n;i++)
   printf("this is iteration number %d\n", i);

由此,我將得到如下輸出:

這是迭代次數0

這是迭代編號1

...

但我希望只打印一行並且值會更改。 那就是我要覆蓋每一行。

現在,如果我打印另一行(我們稱其為line2),但是我需要覆蓋前一行而不影響line2。

不是最完善的解決方案,但是您可以使用“回車” \\r和沖洗stdout如下所示:

#include <stdio.h>
#include <unistd.h>
int main() 
{
  for (int i = 0; i < 10; i++) {
      printf("\rValue of i is: %d", i);
      fflush(stdout);
      sleep(1);
  }
}

您可以使用回車符 \\r將光標返回到行的開頭,然后在下一次迭代中將其覆蓋:

int n = 100;
for (int i = 0; i < n; i++) {
    printf("\rThis is iteration number %d", i);
    fflush(stdout);
    sleep(1);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM