【C语言】实现一个变色的进度条

本文介绍了一个简单的彩色进度条实现方案,使用C语言编程,并通过控制台输出不同颜色的字符来达到变色效果。该进度条还能够显示当前的进度百分比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现一个如上的进度条

要求

1、依次多打印一个'#'

2、并后面标注百分比

3、还可以进行变色

实现进度条(未变色)

strip.c

#include<stdio.h>
#include<unistd.h>

#define M 100

int main()
{
	char ch = '#';
	char str[M] = {0};
	int i = 0;
	char symbol[4] = {'|','/','-','\\'};
	for(i = 0; i<M; ++i)
	{
		str[i] = '#';
		printf("[%-100s][%%%d][%c]",str,i,symbol[i%4]);
		fflush(stdout);
		usleep(10000);
		printf("\n");
		system("clear");
	}
	return 0;
}

现在让我们实现变色版本

定义颜色头文件 color.h

#define NONE                "\033[m" 
#define RED                 "\033[0;32;31m" 
#define LIGHT_RED		 "\033[1;31m" 
#define GREEN			  "\033[0;32;32m" 
#define LIGHT_GREEN            "\033[1;32m" 
#define BLUE                     "\033[0;32;34m" 
#define LIGHT_BLUE              "\033[1;34m" 
#define DARY_GRAY             "\033[1;30m" 
#define CYAN                     "\033[0;36m" 
#define LIGHT_CYAN             "\033[1;36m" 
#define PURPLE                   "\033[0;35m" 
#define LIGHT_PURPLE           "\033[1;35m" 
#define BROWN                  "\033[0;33m" 
#define YELLOW                 "\033[1;33m" 
#define LIGHT_GRAY             "\033[0;37m" 
#define WHITE                "\033[1;37m" 

在strip.c中引入 color.h 并实现变色

#include<stdio.h>
#include<unistd.h>
#include"color.h"

#define M 100

int main()
{
	char ch = '#';
	char str[M] = {0};
	int i = 0;
	char symbol[4] = {'|','/','-','\\'};
	for(i = 0; i<M; ++i)
	{
		int c = i%5;
		switch(c)
		{
			case 0:
				printf(RED);
				break;
			case 1:
				printf(GREEN);
				break;
			case 2:
				printf(BLUE);
				break;
			case 3:
				printf(YELLOW);
				break;
			case 4:
				printf(BROWN);
				break;
		}

		str[i] = '#';
		printf("[%-100s][%%%d][%c]",str,i,symbol[i%4]);
		fflush(stdout);
		usleep(100000);
		printf("\n");
		system("clear");
	}
	printf("\033[0m");
	return 0;
}

实现一个Makefile

strip.exe:strip.c
	gcc strip.c -o strip.exe -g
.PHONY:clean
clean:
	rm -f strip.exe

运行结果


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值