Linux下模拟实现进度条

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下模拟实现进度条相关的知识,希望对你有一定的参考价值。


   进度条是什么?进度条就是在你下载文件、软件、游戏等出现的进度,它会显示你在有百分之多少就能下载好这个东西。

   由于自己的好奇,我就在Linux下实现了这个东西。

我的实现思路:

   1.给一个数组,这个数组必须能保存下100个字符。

   2.然后把数组看成一行来读取。

   3.最后标准输出在屏幕上。

注意:

    1.我们要打印个进度条肯定是100%的,所以需要一个能够刚下100个字符的数组是必要的,但是需要注意的是要多开辟一个字符放‘/0’,开辟好以后还需要全部初始化成‘/0‘防止输出字符串的时候出现乱码。 

     2.最重要的是需要加上printf("/r"),这个是用来只回车不换行,能够达到的功能是缓冲去里面的值始终只有一行,不会出现每次要输出一串字符,这样就能实现进度条的核心功能了。 

     3.在打印进度条时,需要将两边的框固定,所以写成%100s但是需要加上负号,因为那样写是从右边开始打印的

实现代码:

#include<stdio.h>
#include <string.h>
void proc()
{
	int rate = 0;
	const char *lable = "|/-\\";
	char bar[102];
	memset(bar, ‘\0‘, sizeof(bar));//初始化
	while (rate <= 100)
	{
		bar[rate] = ‘=‘;
		printf("[-101s][%d%%][%c]\r", bar, rate, lable[rate % 4]);
		fflush(stdout);//标准输出
		rate++;
		usleep(10000);
	}
	printf("\n");
}
int main()
{
	proc();
	return 0;
}

输出结果:

技术分享

以上是关于Linux下模拟实现进度条的主要内容,如果未能解决你的问题,请参考以下文章

Linux下的简易进度条的实现

linux下进度条的简单实现

Linux中实现一个简单的进度条

活动到片段方法调用带有进度条的线程

模拟进度条发现的彩蛋

C语言实现windows,linux双版本下的进度条小程序,快来试一试吧