進度條的應用在軟件中無處不在,拷貝一個文件需要一個進度條,加載一個文件也需要一個進度條,來標志完成與否。
那么 ,一個進度條有哪些元素呢:
一個不斷向右生長的容器(直觀的看出當前的進度)
一個數據化反映進度的百分比。
一個標志(這個標志反映這個進度條是否在工作,還是卡死
首先我們需要將[ ]固定在左右兩邊,中間預留下空間,然后用“=”進行填充。這里printf("[%-101s] ",str); 格式化輸出,‘-’表示左對齊,100表示固定列寬,然后‘ ’ 表示回車,即每次打印完使光標回到最開始位置。
再明確一下,‘ ’和‘ ’這兩個概念:‘ ’表示換行,換到當前行的下一行,即光標指向下一行最開始的位置;' '指回車,即光標回到最開始位置。
如果不加睡眠時間,結果一下就全打印出來了,但我們想讓它稍微慢一點,畢竟是進度條嘛,而Linux系統下默認sleep時間單位為秒(s),這樣的話又覺得間隔時間太長了,于是就有了usleep,它是以微妙計的。
C語言的printf是行緩沖輸出,什么意思呢?就是說不滿一行不輸出,就是靠 輸出的,沒有 只好強制把緩沖中的數據輸出出所以這就 要用到函數fflush()。
程序源代碼:
????
效果如下圖所示:
審核編輯:劉清
-
緩沖器
+關注
關注
6文章
1922瀏覽量
45507 -
Linux系統
+關注
關注
4文章
594瀏覽量
27409 -
C語言
+關注
關注
180文章
7605瀏覽量
136959 -
printf函數
+關注
關注
0文章
31瀏覽量
5894
原文標題:基于C語言的進度條,附代碼
文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論