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

    文章

    1600

    浏览量

    44896
  • Linux系统
    +关注

    关注

    4

    文章

    567

    浏览量

    26924
  • C语言
    +关注

    关注

    180

    文章

    7534

    浏览量

    128884
  • printf函数
    +关注

    关注

    0

    文章

    30

    浏览量

    5827

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

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

收藏 人收藏

    评论

    相关推荐

    C语言printf函数族学习笔记

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

    如何移植C语言printf()函数到51单片机上?

    如何移植C语言printf()函数到51单片机上?有什么方法?怎样去实现在51单片机的串口类pc端的printf()输出
    发表于 07-15 13:02

    如何让STM32使用printf函数

    声明:所有资源均来自于普中STM32F103开发板相关资料,这是自己购买的一款开发板,如果原作者认为侵权,请联系我以便及时处理。printf重定向简介C语言printf函数默认
    发表于 08-16 08:31

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

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

    printf函数输出到串口该如何去实现

    如何去实现C语言中的串口或LCD的输出printf函数输出到串口该如何去实现
    发表于 11-30 06:53

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

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

    C语言printf格式字符的相关资料分享

    / C语言printf中的格式字符 /printf(格式控制, 输出列表)e格式符:用%e指定以指数形式
    发表于 03-02 07:49

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

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

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

    平时我们进行c语言编程的时候会经常用到printf函数进行打印输出,来调试代码。可是这个printf函数C库已经帮我们实现好了,通常只需要直接调用即可,但是如果在一个新的开发平台,如果
    发表于 06-22 09:08 1.3w次阅读
    什么是串口通信?基于STM32的<b class='flag-5'>printf</b>打印<b class='flag-5'>输出</b>

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

    printf 是C语言非常有用的一个函数,也是我们入门学习C语言的第一个函数。掌握 printf 的格式化输出,对后续的学习非常有帮助。
    的头像 发表于 02-24 10:53 4251次阅读

    KEIL C51使用标准printf输出数值不对解决方法

    counter;printf(“Current count: %bd\n”, counter);//输出8位”十进制有符号整数”printf(“Current count: %bx\n”, counter);//
    发表于 11-29 10:51 19次下载
    KEIL C51使用标准<b class='flag-5'>printf</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次下载

    printf输出重定向的方法

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

    c语言printf输出空格间隔

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