c语言显示动态进度条

本篇仅用于记录自己所学知识及应用,代码仍可优化,仅供参考,如果发现有错误的地方,尽管留言于我,谢谢。

运行结果:
在这里插入图片描述
在这里插入图片描述

下面为显示进度条的函数,通过struct copy_arg结构体传参。其中cp_size(s1)为已经完成的部分,file_size(s2)为需要完成的部分(总大小)

struct copy_arg																		//定义结构体存储文件描述符
{
    
    
	int s1;
	int s2;
};

void *schedule(void *size_arg)														// 显示进度条 函数
{
    
    
	struct copy_arg *s = size_arg;
	double cp_size = s->s1;
	double file_size = s->s2;
	
	double num = (cp_size / file_size)*50;											//num决定进度条中“>”的个数(0~50)
	printf("\r");																	//删除上一次输出的内容
	
	printf("复制文件中:[");
	for(int i = 0; i < 50; i++)
	{
    
    
		if(i < num)																	//输出num个">"
			printf(">");
		else
			printf(" ");															//其他用空格填充
	}
	
	if(num > 49.5)																	//防止(cp_size / file_size)不能被除尽
		num = 50;
	
	printf("]%% %.2f",num*2);														//输出完成进度的百分比
}

猜你喜欢

转载自blog.csdn.net/weixin_43793181/article/details/108610257