Linux C语言实现带颜色进度条

Linux 的 bash 命令行解释器会输出有颜色的字体

在这里插入图片描述
那怎么做到的呢?

print( "\033[字背景颜色;字体颜色m字符串\033[0m");

下面给出一些背景颜色和字体颜色 具体搭配就看你的喽
字背景颜色范围:40----49
40:黑
41:深红
42:绿
43:黄色
44:蓝色
45:紫色
46:深绿
47:白色
字颜色:30-----------39
30:黑
31:红
32:绿
33:黄
34:蓝色
35:紫色
36:深绿
37:白色

尝试写一个带颜色的进度条

// 尝试写一个进度条程序
# include <stdio.h>
# include <unistd.h>
#define N 32
void process_bar(void);

int main(void)
{
  process_bar();
  return 0; 
}

void process_bar(void)
{
  char buf[N] = {0};
  int i = 0;
  for(i = 0; i < N; ++i)
  {
    buf[i] = '#';
    if((float)i / N <= 0.15)
    { // 进度小于 15% -- 红色
      printf("\33[31m [%3.0f%%][%s]\r\33[0m", ((float)i/N)*100, buf);
    }
    else if((float)i / N <= 0.8)
    { // 进度 大于 15% 小于 80% -- 黄色
      printf("\33[33m [%3.0f%%][%s]\r\33[0m", ((float)i/N)*100, buf);
    }
    else 
    { // 进度 大于 80% 绿色
      printf("\33[32m [%3.0f%%][%s]\r\33[0m", ((float)i/N)*100, buf);
    }
    fflush(stdout); // 刷新输出缓冲区
    usleep(500 * 100); // 需包含头文件 <unistd.h> 单位是 微秒( 1秒 = 10^6 微秒 )
  }
  printf("\n");
}

看到这了,你怎么不自己试试呢?

猜你喜欢

转载自blog.csdn.net/Eric_qiushui/article/details/82811023