Linux下实现进度条程序的简单实现
1.进度条:进度条即计算机在处理任务时,实时的,以图片形式显示处理任务的速度,完成度,剩余未完成任务量的大小,和可能需要处理时间,一般以长方形条状显示。产生进度条的元素:1.一个不断向右增长的容器,可以直观看出当前的进度。“%md”,预宽为m,右对齐,”%-md”,左对齐2.一个反应进度的百分比,在这里用到转义字符”%%”或者”\%”,都代
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 | 显示光标 |
更多推荐
所有评论(0)