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下模拟实现进度条的主要内容,如果未能解决你的问题,请参考以下文章