基于C语言的进度条实现!

Posted 嵌入式大杂烩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于C语言的进度条实现!相关的知识,希望对你有一定的参考价值。

👇 星标「嵌入式大杂烩」,一起进步!👇

进度条的应用在软件中无处不在,拷贝一个文件需要一个进度条,加载一个文件也需要一个进度条,来标志完成与否。

那么 ,一个进度条有哪些元素呢:

  • 一个不断向右生长的容器(直观的看出当前的进度)

  • 一个数据化反映进度的百分比。

  • 一个标志(这个标志反映这个进度条是否在工作,还是卡死

首先我们需要将[ ]固定在左右两边,中间预留下空间,然后用“=”进行填充。这里printf("[%-101s]\\r",str);    格式化输出,‘-’表示左对齐,100表示固定列宽,然后‘\\r’ 表示回车,即每次打印完使光标回到最开始位置。

再明确一下,‘\\n’和‘\\r’这两个概念:‘\\n’表示换行,换到当前行的下一行,即光标指向下一行最开始的位置;'\\r'指回车,即光标回到最开始位置。

如果不加睡眠时间,结果一下就全打印出来了,但我们想让它稍微慢一点,毕竟是进度条嘛,而Linux系统下默认sleep时间单位为秒(s),这样的话又觉得间隔时间太长了,于是就有了usleep,它是以微妙计的。

C语言的printf是行缓冲输出,什么意思呢?就是说不满一行不输出,就是靠\\n输出的,没有\\n只好强制把缓冲中的数据输出出所以这就 要用到函数fflush()。

程序源代码:

效果图:

免责声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

------------ END ------------

往期推荐:

LED在单片机项目中的重要性!

如何在嵌入式中使用设计模式的思想?

在公众号聊天界面回复1024,可获取嵌入式资源;回复 m ,可查看文章汇总。

点击阅读原文,查看更多分享

以上是关于基于C语言的进度条实现!的主要内容,如果未能解决你的问题,请参考以下文章

C语言做一个百分比进度条

C语言做一个百分比进度条

C语言printf中%s%*s%*.*s的作用以及实现一个进度条

C语言printf中%s%*s%*.*s的作用以及实现一个进度条

C语言printf中%s%*s%*.*s的作用以及实现一个进度条

C语言printf中%s%*s%*.*s的作用以及实现一个进度条