Linux下輸出簡單進度條

2021-08-31 18:23:25 字數 688 閱讀 8256

首先我們需要了解一些基本知識:

我們知道printf函式是將引數的內容輸出到標準輸出流,通過標準輸出流再顯示到顯示器上,而在linux中,標準輸出流stdout是有緩衝區的,它先將資料儲存到緩衝區中,等到達到重新整理緩衝區的條件後,才重新整理緩衝區,將緩衝區的所有內容輸出。

因此我們如果直接用printf函式進行輸出,那麼輸出的就會是乙個靜態的已經走完進度條。所以我們需要在進度條的每次輸出後都進行一次緩衝區重新整理。

而幾種常見的重新整理緩衝區中,遇見換行符\n重新整理的方式是行不通的 ,因為我們的進度條需要在同一行顯示。因此我們採用fflush(stdout)函式來重新整理標準輸出流緩衝區。

為了讓我們的進度條在同一行顯示,我們可以採用轉義字元\r來實現,它的作用為將游標移動到本行的開頭

下面我們進入正題:

#include #include void print()

; //我們將進度條儲存在乙個陣列中,先將陣列全部置為'\0'

for (int i = 0; i < 100; i++)

printf("\n"); //最後輸出乙個換行符

}int main()

最後附上效果圖:

Linux下進度條

功能 模擬1到100的進度條,每次顯示列印了百分之多少 首先要明白幾個轉義字元在不同平台的功能 r return 到當前行的最左邊。n newline 向下移動一行,並不移動左右。linux中 n表示回車 換行 windows中 r n表示回車 換行。mac中 r表示回車 換行。現在進行實現 buf...

Linux環境下實現簡單進度條

進度條是我們生活中可見的,但是大家卻從來不知道其怎麼實現的,下面就是linux環境下的進度條的簡單實現 這裡應該提一下緩衝區的概念 緩衝器為暫時置放輸出或輸入資料的記憶體。緩衝器內資料自儲存裝置 如硬碟 來,放置在緩衝器中,須待機送至cpu或其他運算裝置。緩衝區 buffer 這個中文譯意源自當計算...

Linux 簡單實現進度條

1 進度條存在乙個區間,不斷載入資料,直到區間加載滿了。2 發現會顯示你的進度,從0 100 3 在網速不好的時候,會出現乙個旋轉的小圈,表示在進行載入資料。思路 我們通過乙個陣列,每載入成功一次,陣列會多出現乙個標示。由於進度條是在一行內進行的,故我們需要回車,不需要換行,通過 r 實現。1 進度...