Linux:彩色进度条

搞一个连续进度条
  • 循环打印递增#(第一次1个,第二次2个…)作为进度条的元素,但注意每次打印完后以/r结尾,这样会覆盖该行的文本从开头重新打印,然后用 fflush(stdout); 手动清理缓冲区让它显示出来,如果你用了/n的话,虽然不需要手动清理缓冲区了,但你看到的可就是个直角三角形了=_=
打印彩色效果
  • printf支持改变打印内容的颜色,和其背景颜色,其格式为:printf("\033[%d;%d;%dm内容\033[0m",a,b,c);
  • a的参数:
十进制功能
0默认
1加粗
4下划线
7反显
8隐形(可以选中,看不见)
  • b用于设置背景色,c用于设置内容颜色
b(十进制)c(十进制)颜色
4030
4131
4232绿
4333
4434
4535
4636
4737灰白
  • 为了酷炫一点,进度在40以下是红色,在80以下是黄色,80以上是绿色

旋转等待

  • 设置了一个char round[4] ={’-’,’\’,’|’,’/’};然后每次打印不同的字符连续起来就会向钟表一样旋转起来啦
  • 实现效果:
    在这里插入图片描述
    在这里插入图片描述
    参考代码:
#include<iostream>
#include<stdio.h>
#include<unistd.h>
using namespace std;

class Solution{
  public: 
    void ColorProccesBar(size_t size = 100){
      char round[4] ={'-','\\','|','/'}; 
      for(size_t i = 0;i<=size;++i){
          printf("%c[%%%d]",round[i%4],i);
        for(size_t j = 0;j<i;++j){
          if(i<=40)
          printf("\033[47;31m#\033[0m");
          else if(i>40&&i<=80)
          printf("\033[47;33m#\033[0m");
          else
          printf("\033[47;32m#\033[0m");
        }
        fflush(stdout);
        usleep(200000);
        printf("\r");
      }
      printf("\n");
  }
};

int main(){
  //int size = 0;
  //cin>>size;
  Solution().ColorProccesBar();
  return 0;
}

yo~
yo~
如果觉得不错~
请别忘了点个赞~
Bro你的鼓励~
给我坚持的勇气~
Peace out~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值