显示进度指示器

时间:2011-07-06 03:29:14

标签: c linux progress

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

谢谢。

2 个答案:

答案 0 :(得分:3)

将一个'\r'字符写入stdout,将光标返回到行的开头,这样就可以覆盖该行。例如:

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

答案 1 :(得分:2)

我相信你做的事情如下:

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

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