(这只是在下的粗浅理解,不足的地方还请谅解,欢迎留言提出,后期理解深入后会加以改进)
打印彩色经度条就得知道颜色如何设置
如何在Linux环境下输出颜色呢,格式如下
int main()
{
printf("\033[10;10H"); // 在 10 行 10 列 输出
printf("\033[33m\033[46m[]"); // 3n字符的前景色 4n字符的背景色
printf("\033[0m"); // 清除以前的设置
}
Linux环境中有哪些颜色
背景颜色: 40–47
40: 黑
41: 红
42: 绿
43: 黄
44: 蓝
46: 深绿
47: 白色
字颜色: 30–37
30: 黑
31: 红
32: 绿
33: 黄
34: 蓝
36: 深绿
37: 白色
下面是实现进度条的代码
#include<stdio.h>
#include<unistd.h>
#include <stdlib.h>
int main(void)
{
char buf[101]={};
int i;
for(i=0;i<100;i++)
{
char* p="|/-\\|\0";
int a[8] = {30,31,32,33,34,35,36,37};
buf[i] = '#';
printf("\r[\033[40;%dm%-100s\033[0m]%d[%c]", a[i%8], buf,i+1,p[i%4]);
fflush(stdout);
usleep(100000);
}
printf("\n");
}
效果: