0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

STM32嵌入式开发 来源:STM32嵌入式开发 2023-08-08 16:23 次阅读

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

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

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

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

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

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

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

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

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

程序源代码:

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

效果如下图所示:

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






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 缓冲器
    +关注

    关注

    6

    文章

    1919

    浏览量

    45450
  • Linux系统
    +关注

    关注

    4

    文章

    591

    浏览量

    27356
  • C语言
    +关注

    关注

    180

    文章

    7598

    浏览量

    136212
  • printf函数
    +关注

    关注

    0

    文章

    31

    浏览量

    5880

原文标题:基于C语言的进度条,附代码

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C语言基础知识(2)--标准输入输出

    printfC语言的标准输出函数,一般用于向标准输出设备按规定格式输出信息。
    的头像 发表于 06-12 14:21 5832次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>基础知识(2)--标准输入<b class='flag-5'>输出</b>

    C语言printf函数族学习笔记

    printf 应该是学习C语言的第一个函数,我们都知道它是用于字符串格式化输出的。但是它的用法你真正了解了吗?
    的头像 发表于 11-24 11:15 918次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b><b class='flag-5'>printf</b>函数族学习笔记

    如何去使用printf这个C语言常用的打印输出函数

    如何去实现基于C库的printf函数?如何去使用printf这个C语言常用的打印
    发表于 11-30 06:41

    printf()函数怎样才能像C语言一样输出打印信息

    printf()函数怎样才能像C语言一样输出打印信息
    发表于 12-01 07:58

    c语言printf()输出格式大全

    c语言printf()输出格式大全,简洁明了,适合新手观看
    发表于 06-23 18:14 8次下载

    基于STM32的printf串口数据输出

    该方法适用于 STM32 ,实现了使用printf等标准C流函数输出数据的办法,极大的减少了输出 串口数据 时所需要做的数据处理。 实现原理 在C
    发表于 06-21 07:51 2w次阅读
    基于STM32的<b class='flag-5'>printf</b>串口数据<b class='flag-5'>输出</b>

    什么是串口通信?基于STM32的printf打印输出

    平时我们进行c语言编程的时候会经常用到printf函数进行打印输出,来调试代码。可是这个printf函数
    发表于 06-22 09:08 1.4w次阅读
    什么是串口通信?基于STM32的<b class='flag-5'>printf</b>打印<b class='flag-5'>输出</b>

    C语言printf格式化输出的实例详细资料说明

    printfC语言非常有用的一个函数,也是我们入门学习C语言的第一个函数。掌握 printf
    的头像 发表于 02-24 10:53 4629次阅读

    解析C语言入门基础之输入和输出

    01 — 标准输入和标准输出C语言里要使用标准输入和标准输出必须包含stdio.h头文件,常用的标准输出和标准输入函数是
    的头像 发表于 05-31 14:05 3750次阅读

    探索C语言入门基础之缓冲

    01 — C标准库缓冲区探索 在计算机里缓存是一个很重要的概念,C标准库里大量使用了缓存,最为典型的就是标准输入和标准输出的缓存,关于C
    的头像 发表于 06-28 17:24 2107次阅读
    探索<b class='flag-5'>C</b><b class='flag-5'>语言</b>入门基础之<b class='flag-5'>缓冲</b>区

    通过串口利用printf函数输出数据

    一。printf函数格式printf函数具有强大的输出功能%表示格式化字符串输出目前printf支持以下格式的
    发表于 12-28 19:11 11次下载
    通过串口利用<b class='flag-5'>printf</b>函数<b class='flag-5'>输出</b>数据

    C语言printf()输出格式

    printf 的格式控制的完整格式:% - .n l 或 h 格式字符 下面对组成格式说明的各项加以说明: ①%:表示格式说明的起始符号,不可缺少。 ②-:有-表示左对齐输出,如省略表示右对齐输出。 ③0:有 0 表示指定空位填
    发表于 01-13 16:42 0次下载

    C语言printf输出函数的用法

    输出是以计算机主机为主体而言的,从计算机向输出设备输出数据称为输出C语言本身不包含
    的头像 发表于 03-09 10:55 1321次阅读

    printf输出重定向的方法

    在 PC 上运行 C 语言时,prinf 输出的内容会打印在电脑显示器上,这是因为 prinf 默认的输出设备就是显示器。而当我们在单片机上,需要通过
    的头像 发表于 05-14 16:22 5208次阅读
    <b class='flag-5'>printf</b><b class='flag-5'>输出</b>重定向的方法

    c语言printf输出空格间隔

    C语言中,需要在printf输出中添加空格间隔可以通过多种方式实现。这个空格间隔可以用于对输出进行格式化使其更加易读、美观。在接下来的文章中
    的头像 发表于 11-24 09:56 6224次阅读