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

1.进度条:

进度条即计算机在处理任务时,实时的,以图片形式显示处理任务的速度,完成度,剩余未完成任务量的大小,和可能需要处理时间,一般以长方形条状显示。
产生进度条的元素:
1.一个不断向右增长的容器,可以直观看出当前的进度。 “%md”,预宽为m,右对齐,”%-md”,左对齐
2.一个反应进度的百分比,在这里用到转义字符”%%”或者”\%”,都代表的是”%”,”\”代表’\’.
3.一个标志,反应该进度是正在运行还是卡死,在程序中体现的是const char *arr=”-|/”;,是顺时针输出.
列如:
[%25][/][############]
[%50][][##########################]


  1. 缓冲区概念:

缓冲区(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 显示光标

猜你喜欢

转载自blog.csdn.net/important_/article/details/78632500