源代码如下:
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int progress; //进度条的百分比
int cur; //当前已经完成的部分
int len; //进度条的总长度
}BAR;
void displayProgress(BAR bar){
int k = 0;
for (k=0; k<bar.len + 6; k++)
putchar('\b');//将当前行全部清空,用以显示最新的进度条状态
int j = 0;
for (j=0; j<bar.cur; j++)
putchar('#');//打印进度条上已经完成的部分,用‘#’表示
for (j=1; j<=bar.len - bar.cur; j++)
putchar('-');//打印进度条上还有多少没有完成的
fprintf(stdout, " %3d%%",bar.progress);
fflush(stdout);
}
int main(){
BAR bar;
bar.len = 40;
int i = 0;
for(;i <= 100; i++){
bar.progress = i;
bar.cur = bar.progress * bar.len / 100;
displayProgress(bar);
sleep(1);
}
return 0;
}