【问题标题】:Show progress indicator显示进度指示器
【发布时间】:2011-09-29 07:04:14
【问题描述】:

我在 Linux 中使用 C。如何显示进度指示器,让我知道程序(或程序的一部分)何时完成?例如,它可能类似于“正在搜索...67%”,并且该百分比将不断增加,直到搜索部分结束。

谢谢。

【问题讨论】:

    标签: c linux progress


    【解决方案1】:

    '\r' 字符写入标准输出以将光标返回到行首,这样您就可以覆盖该行。例如:

    for (i=0; i<100; i++) {
        printf("\rSearching...%d%%", i);
        fflush(stdout);
        sleep(1);
    }
    

    【讨论】:

    • 我比你快 10 秒,gj +1
    【解决方案2】:

    我相信如果你这样做:

    while (perc < 100) {
        printf("Searching... %d%%\r", perc); 
        fflush(stdout);
        //do work
    }
    

    fflush() 是避免行缓冲所必需的。请注意,我使用的是\r,而不是\n

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-11
      • 1970-01-01
      • 2020-08-10
      • 2020-09-04
      相关资源
      最近更新 更多