全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 处理器/DSP >

C语言的printf是行缓冲输出,什么意思呢?

时间:2023-08-08 16:23

人气:

作者:admin

标签: C语言  printf函数  缓冲器 

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

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

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

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

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

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

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

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

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

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

程序源代码:

9aa59222-35c2-11ee-9e74-dac502259ad0.png     

效果如下图所示:

9ac871a2-35c2-11ee-9e74-dac502259ad0.gif






审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信