linux :vim 实现命令行下输出进度条
2017-02-17 11:55
477 查看
1、 进度条原理:
进度条的的动态增长是利用人的视觉短暂停留效果的,不断从输出缓冲区刷新出相同的内容,在肉眼看来进度条在不断的增长。
在显示器上先输出[# ][%1]
刷新一次之后, [## ][%2],由于刷新很快,看起来进度 ‘#’不断增长,直到进度完成%100
2、 缓冲区:
缓冲区(buffer)这个中文译意源自当计算机的高速部件与低速部件通讯时,必须将高速部件的输出暂存到某处,以保证高速部件与低速部件相吻合. 后来这个意思被扩展了,成为"临时存贮区"的意思。
缓冲区分为:无缓冲、行缓冲、全缓冲。
无缓冲:表示的是没有缓冲,可以将信息立马显现出来,典型代表是标准错误流stderr。
行缓冲:表示的是输入输出遇到换行才执行真正的I/O操作。典型的代表是键盘的操作。
全缓冲:表示的是输入输出写满缓冲区才执行I/O操作。典型的代表是磁盘的读写。
3、 回车换行:
回车用'\r'表示,表示的是回到这行的起始位置。换行用‘\n'表示,表示的是换行到下一行。
在C语言中,刷新缓冲区的函数是fflush函数,强制刷新缓冲区。实现这个进度条应使用的是无缓冲,实时的将进度条的变化显现出来。在这里,不需要换行只需要回车。
4、 fflush:
fflush,函数名, 清除读写缓冲区,需要立即把输出缓冲区的数据进行物理写入时。
fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃[非标准]
fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上
5、进度条代码如下:
Progress_bar.c
Makefile :
进度条的的动态增长是利用人的视觉短暂停留效果的,不断从输出缓冲区刷新出相同的内容,在肉眼看来进度条在不断的增长。
在显示器上先输出[# ][%1]
刷新一次之后, [## ][%2],由于刷新很快,看起来进度 ‘#’不断增长,直到进度完成%100
2、 缓冲区:
缓冲区(buffer)这个中文译意源自当计算机的高速部件与低速部件通讯时,必须将高速部件的输出暂存到某处,以保证高速部件与低速部件相吻合. 后来这个意思被扩展了,成为"临时存贮区"的意思。
缓冲区分为:无缓冲、行缓冲、全缓冲。
无缓冲:表示的是没有缓冲,可以将信息立马显现出来,典型代表是标准错误流stderr。
行缓冲:表示的是输入输出遇到换行才执行真正的I/O操作。典型的代表是键盘的操作。
全缓冲:表示的是输入输出写满缓冲区才执行I/O操作。典型的代表是磁盘的读写。
3、 回车换行:
回车用'\r'表示,表示的是回到这行的起始位置。换行用‘\n'表示,表示的是换行到下一行。
在C语言中,刷新缓冲区的函数是fflush函数,强制刷新缓冲区。实现这个进度条应使用的是无缓冲,实时的将进度条的变化显现出来。在这里,不需要换行只需要回车。
4、 fflush:
fflush,函数名, 清除读写缓冲区,需要立即把输出缓冲区的数据进行物理写入时。
fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃[非标准]
fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上
5、进度条代码如下:
Progress_bar.c
Makefile :
相关文章推荐
- linux 的命令行输出进度条
- vim的简单配置及Linux下实现进度条
- 在 linux 的命令行输出进度条
- linux printf设置颜色与输出控制,利用控制码,实现固定位置输出百分比进度
- 在 linux 的命令行输出进度条
- Linux下vim上编辑实现进度条
- Linux下vim上编辑实现进度条
- linux环境下使用vim实现简易进度条代码
- linux下用vim实现ultraEdit的功能
- Linux 管道替换标准输入输出 实现2个独立程序代码之间的通信
- 实现linux的自动登录--命令行模式启动 .
- 如何实现 linux 在 命令行模式(init 3)状态下不用输入用户名自动登陆
- unxi及linux下实现2进制输出
- Linux中用C++通过管道来获取命令行输出的内容
- 实现Linux与Windows下一致的命令行
- [置顶] Linux中用C++通过管道来获取命令行输出的内容
- Windows命令行下实现带颜色输出
- Linux下利用cronolog工具实现catalina.out按日期输出日志
- linux下实现自动后台运行,脱离输出到终端
- Linux下用命令行实现录像(Recording and playback of terminal sessions)和广播教学功能