当前位置:   article > 正文

Linux 小程序 —— 进度条_linux下怎么打印酷炫的进度条

linux下怎么打印酷炫的进度条

目录

行缓冲区概念

回车和换行

进度条源码以及效果展示


行缓冲区概念

在写程序之前,我们先弄清楚一些问题

上面这段代码,在Linux中运行的结果是先打印hello proc!,然后换行,然后等5s后程序结束,这没什么问题,那如果是下面这段代码呢?

如果你认为是先输出hello proc!再等5s然后程序结束的话,就大错特错了。

真实的情况是,先休眠5s,再打印hello proc!然后程序结束,这就证明了行缓冲区的存在

这是什么意思呢?

Linux的命令行默认是行缓冲的,意思就是当我们程序中printf有输出时,Linux不会一个一个字的去输出内容,而是将这些内容先放进缓冲区里,等一行准备完了再一次性把一行全部输出出来(因为效率),Linux判断这一行有没有完的依据时换行符\n(Windows是\r\n,ios是\r),也就是说你这一行要打印的内容再多,只要没遇到\n(或是没遇到程序终止,或是行缓冲区未满),都不会把缓冲区里的东西拿出来输出。

回车和换行

我们常说的回车和换行,其实不是一个意思

换行:光标换到下一行 \n

回车:光标回到本行行首 \r

所以按正常连起来就是\r\n意思是回车换行

但是在c、cpp等语言里,我们的就用一个\n表示回车换行

以上代码,输出从10~1,每输出一个数换一次行,总计10s程序结束

以上代码,等待9s后什么也没输出然后程序结束,因为\r是光标回到行首,相当于在缓冲区里实现了覆盖。

 ​​​​​​​

以上代码,用了fflush(stdout),它的作用是刷新输入缓冲区,将缓冲区中的东西输出到屏幕上,并且设置了域宽为2,所以输出结果为在原地打印10~1

进度条源码以及效果展示

这是该项目下的所有文件,myproc是可执行程序

Makefile

 

proc.c

proc.h

main.c

效果展示

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/264187
推荐阅读
相关标签
  

闽ICP备14008679号