【Linux】Linux系统下进度条的模拟实现
2016-06-04 16:56
330 查看
前言:
在我们平时下载电影或者进入Centos平台下肯定都见过一个描述的当前进度的标识,----这就是一个进度条
本篇blog,我就来讲讲我的实现。
实现思路:
(1)进度条是从0-100%,开辟一个长度为101的字符数组,最后一个放\0,每次往前走一个我就打印一个=这个符号,形象地展示此时的进度。
(2)要借助缓冲区,每次从缓冲区取字符数组,利用\r(只回车不换行),只回车不换行的意思就是:每次接着在这一行打印,如果换行的话,那效果就是:第1行打印一个=,第2行打印==,类似……所以,我们在这里选择只回车不换行功能的\r,(注意转义字符)。
(3)在C语言中,格式输出中,我利用了
[%-100s],意思是:打印时可以将右方括号]固定位置在100位置处,负号的原因是:从左往右打印。
(4)为方便大家看此时是正在进行,还是由于网络等原因,进度卡了。我在这里利用了:
)。
代码如下:
大家可以在自己的机器平台上运行看一下动态效果,由于是动态效果,我在这里呢,只能把最终截图分享给大家。
在我们平时下载电影或者进入Centos平台下肯定都见过一个描述的当前进度的标识,----这就是一个进度条
本篇blog,我就来讲讲我的实现。
实现思路:
(1)进度条是从0-100%,开辟一个长度为101的字符数组,最后一个放\0,每次往前走一个我就打印一个=这个符号,形象地展示此时的进度。
(2)要借助缓冲区,每次从缓冲区取字符数组,利用\r(只回车不换行),只回车不换行的意思就是:每次接着在这一行打印,如果换行的话,那效果就是:第1行打印一个=,第2行打印==,类似……所以,我们在这里选择只回车不换行功能的\r,(注意转义字符)。
(3)在C语言中,格式输出中,我利用了
<span style="font-family:Microsoft YaHei;font-size:14px;"> printf("[%-100s] %d %% %c",rate,i+1,move[i%4]); </span>
[%-100s],意思是:打印时可以将右方括号]固定位置在100位置处,负号的原因是:从左往右打印。
(4)为方便大家看此时是正在进行,还是由于网络等原因,进度卡了。我在这里利用了:
<span style="font-family:Microsoft YaHei;font-size:14px;"> char move[5]="-\\|/"; </span>来简易实现一个顺时针的球(若大家认为实现的不美观,不要见笑,
)。
代码如下:
#include <stdio.h> #include "string.h" int main() { int i=0; char move[5]="-\\|/"; char arr[101]; memset(arr,'\0',sizeof(arr)/sizeof(arr[0])); while(i<100) { arr[i]= '='; printf("[%-100s] %d %% %c",rate,i+1,move[i%4]); printf("\r"); usleep(100000); fflush(stdout); i++; } printf("\n"); return 0; }
大家可以在自己的机器平台上运行看一下动态效果,由于是动态效果,我在这里呢,只能把最终截图分享给大家。
相关文章推荐
- 关于Linux路由表的route命令
- Linux上面开发工具介绍以及开源学习方法
- 汇编学习笔记
- linux 启动流程图
- linux安装python2.7.11
- CentOS 6.5断电后启动出现:unexpected inconsistency run fsck manully
- Linux学习之字符串截取
- Linux课程实践一:Linux基础实践(SSH)
- linux里的nvme驱动代码分析(加载初始化)
- Linux GCC常用命令
- centos7.0下lnmp环境搭建
- linux 基础学习图解
- 在CentOs6.5安装jdk
- 浅析 Linux 文件权限
- linux常用命令之压缩打包
- linux常用命令之压缩打包
- centos7.0下lamp环境搭建
- ESXi5.5下的Centos7虚机配置静态IP
- linux vim
- 搭建linux 环境