Linux C语言实现终端进度条
直接上代码
#include <stdio.h>
//清屏
#define CLEAR() printf("\033[2J")
// 上移光标
#define MOVEUP(x) printf("\033[%dA", (x))
// 下移光标
#define MOVEDOWN(x) printf("\033[%dB", (x))
// 左移光标
#define MOVELEFT(y) printf("\033[%dD", (y))
// 右移光标
#define MOVERIGHT(y) printf("\033[%dC",(y))
// 定位光标
#define MOVETO(x,y) printf("\033[%d;%dH", (x), (y))
// 光标复位
#define RESET_CURSOR() printf("\033[H")
// 隐藏光标
#define HIDE_CURSOR() printf("\033[?25l")
// 显示光标
#define SHOW_CURSOR() printf("\033[?25h")
//清除从光标到行尾的内容
#define CLEAR_LINE() printf("\033[K")
//反显
#define HIGHT_LIGHT() printf("\033[7m")
#define UN_HIGHT_LIGHT() printf("\033[27m")
#define SPACE_NUM 51
#define BAR_X_OFFSET 1
int main(){
system("clear");
printf("[ ]\n");
int i = 0;
while (i<100)
{
if(i%2 == 0){
MOVEUP(1);
MOVERIGHT(BAR_X_OFFSET+i/2);
printf("=>\n");
}
MOVEUP(1);
MOVERIGHT(BAR_X_OFFSET+1+SPACE_NUM);
printf("[%d%] \n", i);
usleep(50000);
i++;
}
return 0;
}
效果: