进度条的应用在软件中无处不在,拷贝一个文件需要一个进度条,加载一个文件也需要一个进度条,来标志完成与否。
那么 ,一个进度条有哪些元素呢:
一个不断向右生长的容器(直观的看出当前的进度)
一个数据化反映进度的百分比。
一个标志(这个标志反映这个进度条是否在工作,还是卡死
首先我们需要将[ ]固定在左右两边,中间预留下空间,然后用“=”进行填充。这里printf("[%-101s] ",str); 格式化输出,‘-’表示左对齐,100表示固定列宽,然后‘ ’ 表示回车,即每次打印完使光标回到最开始位置。
再明确一下,‘ ’和‘ ’这两个概念:‘ ’表示换行,换到当前行的下一行,即光标指向下一行最开始的位置;' '指回车,即光标回到最开始位置。
如果不加睡眠时间,结果一下就全打印出来了,但我们想让它稍微慢一点,毕竟是进度条嘛,而Linux系统下默认sleep时间单位为秒(s),这样的话又觉得间隔时间太长了,于是就有了usleep,它是以微妙计的。
C语言的printf是行缓冲输出,什么意思呢?就是说不满一行不输出,就是靠 输出的,没有 只好强制把缓冲中的数据输出出所以这就 要用到函数fflush()。
程序源代码:
效果如下图所示:
审核编辑:刘清
-
缓冲器
+关注
关注
6文章
1919浏览量
45450 -
Linux系统
+关注
关注
4文章
591浏览量
27356 -
C语言
+关注
关注
180文章
7598浏览量
136212 -
printf函数
+关注
关注
0文章
31浏览量
5880
原文标题:基于C语言的进度条,附代码
文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论