分享一个彩色进度条小程序
黑白进度条
#include<stdio.h>
#include<unistd.h>
int main(){
int i = 0;
int j = 0;
for (i = 1; i <= 100; i++){
printf("[%d]", i);//显示数字进度
for (j = 1; j <= i; j++){
printf("*");
fflush(stdout);//刷新缓冲区
}
usleep(100000);//等待0.1s
printf("\r");//"\r"覆盖打印
}
printf("\n");
return 0;
}
单色版
int main(){
int i = 0;
int j = 0;
for (i = 1; i <= 100; i++){
printf("[%d]",i);
for(j = 1; j <= i; j++){
printf("\e[1;36m*\e[0m");
fflush(stdout);
}
usleep(100000);
printf("\r");
}
printf("\n");
return 0;
}
- 关于颜色的设定:“\e”为转义选项,以m结束,从\e到之间的选项均为需要转义的参数,参数之间以“;”分隔
这里仅讨论颜色相关的转义:
格式:\e[%d;%d;%dm显示的内容\e[0m
三个%d的含义 :颜色模式 + 前景色 + 背景色
- 第一个:0->普通;1->高亮
- 第二个:30+(0~7)分别是:红、绿、黄、蓝、紫、青、白
- 第三个:40+(0~7)分别是:红、绿、黄、蓝、紫、青、白
参考:https://blog.youkuaiyun.com/wxy_2015/article/details/50640101
彩色版
int main(){
int i = 0;
int j = 0;
for (i = 1; i <= 100; i++){
printf("[%d]",i);
for(j = 1; j <= i; j++){
printf("\e[1;%dm*\e[0m", 30 + i % 7);
fflush(stdout);
}
usleep(100000);
printf("\r");
}
printf("\n");
return 0;
}
人都是无聊死的,喜欢点个赞哈哈哈哈~~