Linux 簡單實現進度條

2021-07-13 08:54:32 字數 994 閱讀 9493

1、進度條存在乙個區間,不斷載入資料,直到區間加載滿了。

2、發現會顯示你的進度,從0%~100%。

3、在網速不好的時候,會出現乙個旋轉的小圈,表示在進行載入資料。

思路:我們通過乙個陣列,每載入成功一次,陣列會多出現乙個標示。由於進度條是在一行內進行的,故我們需要回車,不需要換行,通過「\r」實現。

1、進度條由0%~100%,在字元陣列中,輸出一串字元時,最後以「\0」結

束的,故需要乙個大小為102的陣列,載入成功的資料用「#」表示。

2、進度條會出現乙個區間,然後在裡面進行載入,故先用「【」和「】」表示載入的區間。

3、定義乙個rate標識進度,每進行一次加一,直到100時停止。

4、在進行回車前,需要進行重新整理。

5、在載入進度時,通過sleep()或usleep()控制睡眠時間,sleep表示秒,usleep表示微秒。

6、對於

載入中旋轉的小圈通過「/-|\」逆時針進行。

下面實現進度條

在列印buf時,每次在中間預留100個位置,由於在進行列印buf時,會從後向前列印,故用-100.

在rate為0時,不進行載入『#』,故從buf+1開始輸出。

通過make進行編譯鏈結,結果如下所示

● 通過兩個程式對回車、換行以及緩衝區進行分析。

上述兩個程式執行結果一樣嗎?兩個都會列印出「hello world」,但是左邊程式會先休息1秒再列印,右邊程式先列印後休息1秒。為什麼?由於

在c語言中是行緩衝,程式存放在緩衝區中,遇到'\n'進行重新整理,沒有'\n'一直進行後面操作,程式被強制結束會進行重新整理。

回車換行是一行到新一行的列印。

本文出自 「scen」 部落格,請務必保留此出處

Linux實現簡單的進度條

1 回車換行 回車換行 n 每次游標移到下一行的行首位置處 換行 r 每次游標移到本行的行首位置處 在輸入 r,游標將移動到行首,輸入 n游標換行並且移動到下一行行首,相當於 n r。2 行緩衝區 fflush 緩衝區分為無緩衝 行緩衝 全緩衝。無緩衝 表示的是沒有緩衝,可以將資訊立馬顯現出來,典型...

linux實現進度條

linux實現進度條 如下 include 2 include 3 int main 4 17 return 0 18 截圖 上述 採用 makefile 基本原理 1 進度條原理 建立乙個範圍為0到100的進度條.我會把進度條初始為0,然後,當我載入乙個資源的時候我會用單位長度來讓進度條前進乙個步...

Linux實現進度條

緩衝方式 行緩衝 n 就是行緩衝的標誌 全緩衝 如果把結果輸出到檔案中就是預設的全緩衝。我們要知道,printf函式輸出的內容是存在緩衝區的,n 行緩衝 就可以把緩衝區的內容立即輸出到輸出裝置,如果沒有 n 的話,就會一直往緩衝區裡面寫,知道緩衝區滿了,或者呼叫fflush函式。好了,那現在我們就來...