实现一个简单的进度条,动态展示解压或下载进度。需要实现的功能:
打印动态增长的字符串用来显示进度(每次都在同一行覆盖输出字符串,不换行,需要使用\r)
动态增长的百分比反应百分比。
一个动态字符反映这个进度条是否工作。
#include <stdio.h>
#include<unistd.h>
#include<string.h>
void progress()
{
char progress_bar[102];
memset(progress_bar, '\0', sizeof(char) * 102);//
int len = 0;
int i = 0;
char ch[4] = { '|' ,'/' ,'-','\\'};//
for (; i < 101;i++)
{
len++;
printf("[%-100s]%d%%%c\r", progress_bar, i, ch[i%4]);// \r回车键不换行。%%防止转义字符输出%,用i%4控制标志
progress_bar[len - 1] = '=';
usleep(100);//间隔输出
fflush(stdout);//刷新缓冲区
}
}
在linux下使用makefile编译工程(makefile使用详见http://blog.csdn.net/yangle4695/article/details/51586831)