0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語(yǔ)言的printf是行緩沖輸出,什么意思呢?

STM32嵌入式開(kāi)發(fā) ? 來(lái)源:STM32嵌入式開(kāi)發(fā) ? 2023-08-08 16:23 ? 次閱讀

進(jìn)度條的應(yīng)用在軟件中無(wú)處不在,拷貝一個(gè)文件需要一個(gè)進(jìn)度條,加載一個(gè)文件也需要一個(gè)進(jìn)度條,來(lái)標(biāo)志完成與否。

那么 ,一個(gè)進(jìn)度條有哪些元素呢:

一個(gè)不斷向右生長(zhǎng)的容器(直觀的看出當(dāng)前的進(jìn)度)

一個(gè)數(shù)據(jù)化反映進(jìn)度的百分比。

一個(gè)標(biāo)志(這個(gè)標(biāo)志反映這個(gè)進(jìn)度條是否在工作,還是卡死

首先我們需要將[ ]固定在左右兩邊,中間預(yù)留下空間,然后用“=”進(jìn)行填充。這里printf("[%-101s] ",str); 格式化輸出,‘-’表示左對(duì)齊,100表示固定列寬,然后‘ ’ 表示回車(chē),即每次打印完使光標(biāo)回到最開(kāi)始位置。

再明確一下,‘ ’和‘ ’這兩個(gè)概念:‘ ’表示換行,換到當(dāng)前行的下一行,即光標(biāo)指向下一行最開(kāi)始的位置;' '指回車(chē),即光標(biāo)回到最開(kāi)始位置。

如果不加睡眠時(shí)間,結(jié)果一下就全打印出來(lái)了,但我們想讓它稍微慢一點(diǎn),畢竟是進(jìn)度條嘛,而Linux系統(tǒng)下默認(rèn)sleep時(shí)間單位為秒(s),這樣的話又覺(jué)得間隔時(shí)間太長(zhǎng)了,于是就有了usleep,它是以微妙計(jì)的。

C語(yǔ)言的printf是行緩沖輸出,什么意思呢?就是說(shuō)不滿一行不輸出,就是靠 輸出的,沒(méi)有 只好強(qiáng)制把緩沖中的數(shù)據(jù)輸出出所以這就 要用到函數(shù)fflush()。

程序源代碼:

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

效果如下圖所示:

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






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 緩沖器
    +關(guān)注

    關(guān)注

    6

    文章

    1903

    瀏覽量

    45327
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    587

    瀏覽量

    27181
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7575

    瀏覽量

    134090
  • printf函數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    31

    瀏覽量

    5865

原文標(biāo)題:基于C語(yǔ)言的進(jìn)度條,附代碼

文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C語(yǔ)言基礎(chǔ)知識(shí)(2)--標(biāo)準(zhǔn)輸入輸出

    printfC語(yǔ)言的標(biāo)準(zhǔn)輸出函數(shù),一般用于向標(biāo)準(zhǔn)輸出設(shè)備按規(guī)定格式輸出信息。
    的頭像 發(fā)表于 06-12 14:21 ?4652次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>基礎(chǔ)知識(shí)(2)--標(biāo)準(zhǔn)輸入<b class='flag-5'>輸出</b>

    C語(yǔ)言printf函數(shù)族學(xué)習(xí)筆記

    printf 應(yīng)該是學(xué)習(xí)C語(yǔ)言的第一個(gè)函數(shù),我們都知道它是用于字符串格式化輸出的。但是它的用法你真正了解了嗎?
    的頭像 發(fā)表于 11-24 11:15 ?775次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>printf</b>函數(shù)族學(xué)習(xí)筆記

    如何去使用printf這個(gè)C語(yǔ)言常用的打印輸出函數(shù)

    如何去實(shí)現(xiàn)基于C庫(kù)的printf函數(shù)?如何去使用printf這個(gè)C語(yǔ)言常用的打印
    發(fā)表于 11-30 06:41

    printf()函數(shù)怎樣才能像C語(yǔ)言一樣輸出打印信息

    printf()函數(shù)怎樣才能像C語(yǔ)言一樣輸出打印信息?
    發(fā)表于 12-01 07:58

    c語(yǔ)言printf()輸出格式大全

    c語(yǔ)言printf()輸出格式大全,簡(jiǎn)潔明了,適合新手觀看
    發(fā)表于 06-23 18:14 ?8次下載

    基于STM32的printf串口數(shù)據(jù)輸出

    該方法適用于 STM32 ,實(shí)現(xiàn)了使用printf等標(biāo)準(zhǔn)C流函數(shù)輸出數(shù)據(jù)的辦法,極大的減少了輸出 串口數(shù)據(jù) 時(shí)所需要做的數(shù)據(jù)處理。 實(shí)現(xiàn)原理 在C
    發(fā)表于 06-21 07:51 ?2w次閱讀
    基于STM32的<b class='flag-5'>printf</b>串口數(shù)據(jù)<b class='flag-5'>輸出</b>

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

    平時(shí)我們進(jìn)行c語(yǔ)言編程的時(shí)候會(huì)經(jīng)常用到printf函數(shù)進(jìn)行打印輸出,來(lái)調(diào)試代碼。可是這個(gè)printf函數(shù)
    發(fā)表于 06-22 09:08 ?1.4w次閱讀
    什么是串口通信?基于STM32的<b class='flag-5'>printf</b>打印<b class='flag-5'>輸出</b>

    C語(yǔ)言printf格式化輸出的實(shí)例詳細(xì)資料說(shuō)明

    printfC語(yǔ)言非常有用的一個(gè)函數(shù),也是我們?nèi)腴T(mén)學(xué)習(xí)C語(yǔ)言的第一個(gè)函數(shù)。掌握 printf
    的頭像 發(fā)表于 02-24 10:53 ?4501次閱讀

    解析C語(yǔ)言入門(mén)基礎(chǔ)之輸入和輸出

    01 — 標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出C語(yǔ)言里要使用標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出必須包含stdio.h頭文件,常用的標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)輸入函數(shù)是
    的頭像 發(fā)表于 05-31 14:05 ?3635次閱讀

    探索C語(yǔ)言入門(mén)基礎(chǔ)之緩沖區(qū)

    01 — C標(biāo)準(zhǔn)庫(kù)緩沖區(qū)探索 在計(jì)算機(jī)里緩存是一個(gè)很重要的概念,C標(biāo)準(zhǔn)庫(kù)里大量使用了緩存,最為典型的就是標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出的緩存,關(guān)于C
    的頭像 發(fā)表于 06-28 17:24 ?2049次閱讀
    探索<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>入門(mén)基礎(chǔ)之<b class='flag-5'>緩沖</b>區(qū)

    通過(guò)串口利用printf函數(shù)輸出數(shù)據(jù)

    一。printf函數(shù)格式printf函數(shù)具有強(qiáng)大的輸出功能%表示格式化字符串輸出目前printf支持以下格式的
    發(fā)表于 12-28 19:11 ?11次下載
    通過(guò)串口利用<b class='flag-5'>printf</b>函數(shù)<b class='flag-5'>輸出</b>數(shù)據(jù)

    C語(yǔ)言printf()輸出格式

    printf 的格式控制的完整格式:% - .n l 或 h 格式字符 下面對(duì)組成格式說(shuō)明的各項(xiàng)加以說(shuō)明: ①%:表示格式說(shuō)明的起始符號(hào),不可缺少。 ②-:有-表示左對(duì)齊輸出,如省略表示右對(duì)齊輸出。 ③0:有 0 表示指定空位填
    發(fā)表于 01-13 16:42 ?0次下載

    C語(yǔ)言printf輸出函數(shù)的用法

    輸出是以計(jì)算機(jī)主機(jī)為主體而言的,從計(jì)算機(jī)向輸出設(shè)備輸出數(shù)據(jù)稱為輸出C語(yǔ)言本身不包含
    的頭像 發(fā)表于 03-09 10:55 ?1140次閱讀

    printf輸出重定向的方法

    在 PC 上運(yùn)行 C 語(yǔ)言時(shí),prinf 輸出的內(nèi)容會(huì)打印在電腦顯示器上,這是因?yàn)?prinf 默認(rèn)的輸出設(shè)備就是顯示器。而當(dāng)我們?cè)趩纹瑱C(jī)上,需要通過(guò)
    的頭像 發(fā)表于 05-14 16:22 ?4855次閱讀
    <b class='flag-5'>printf</b><b class='flag-5'>輸出</b>重定向的方法

    c語(yǔ)言printf輸出空格間隔

    C語(yǔ)言中,需要在printf輸出中添加空格間隔可以通過(guò)多種方式實(shí)現(xiàn)。這個(gè)空格間隔可以用于對(duì)輸出進(jìn)行格式化使其更加易讀、美觀。在接下來(lái)的文章中
    的頭像 發(fā)表于 11-24 09:56 ?5022次閱讀