您的位置:首页 > 运维架构 > Linux

Linux下实现进度条程序的简单实现

2017-11-25 16:12 369 查看
1.进度条:

进度条即计算机在处理任务时,实时的,以图片形式显示处理任务的速度,完成度,剩余未完成任务量的大小,和可能需要处理时间,一般以长方形条状显示。

产生进度条的元素:

1.一个不断向右增长的容器,可以直观看出当前的进度。 “%md”,预宽为m,右对齐,”%-md”,左对齐

2.一个反应进度的百分比,在这里用到转义字符”%%”或者”\%”,都代表的是”%”,”\”代表’\’.

3.一个标志,反应该进度是正在运行还是卡死,在程序中体现的是const char *arr=”-|/”;,是顺时针输出.

列如:

[%25][/][############]

[%50][][##########################]

缓冲区概念:

缓冲区(buffer)这个中文译意源自当计算机的高速部件与低速部件通讯时,必须将高速部件的输出暂存到某处,以保证高速部件与低速部件相吻合. 后来这个意思被扩展了,成为”临时存贮区”的意思。

缓冲区分为:无缓冲、行缓冲、全缓冲。

无缓冲:表示的是没有缓冲,可以将信息立马显现出来,典型代表是标准错误流stderr。

行缓冲:表示的是输入输出遇到换行才执行真正的I/O操作。典型的代表是键盘的操作。

全缓冲:表示的是输入输出写满缓冲区才执行I/O操作。典型的代表是磁盘的读写。

3.fflush:

fflush,函数名, 清除读写缓冲区,需要立即把输出缓冲区的数据进行物理写入时。

fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃[非标准]

fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上

4.usleep:

usleep函数能把进程挂起一段时间, 单位是微秒(千分之一毫秒)。本函数可暂时使程序停止执行。

程序实现



makefile





彩色输出参考:[]http://www.cnblogs.com/frydsh/p/4139922.html]

具体实现如下





前景色字体颜色
“\e[30m”灰色
“\e[31m”红色
“\e[32m”绿色
“\e[33m”黄色
“\e[34m”蓝色
“\e[35m”紫色
“\e[36m”淡蓝色
“\e[37m”白色
背景色颜色
[40m”灰色
“\e[41m”红色
“\e[42m”绿色
“\e[43m”黄色
“\e[44m”蓝色
“\e[45m”紫色
“\e[46m”淡蓝色
其他苏醒
\033[0m关闭所有属性
\033[1m设置高亮度
\03[4m下划线
\033[5m闪烁
\033[7m反显
\033[8m消隐
\033[30m – \033[37m设置前景色
\033[40m – \033[47m设置背景色
\033[nA光标上移n行
\03[nB光标下移n行
\033[nC光标右移n行
\033[nD光标左移n行
\033[y;xH设置光标位置
\033[2J清屏
\033[K清除从光标到行尾的内容
\033[s保存光标位置
\033[u恢复光标位置
\033[?25l隐藏光标
\33[?25h显示光标
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: