彩色進度條程式 緩衝區

2021-09-22 18:30:53 字數 1774 閱讀 9647

緩衝區分為無緩衝、行緩衝、全緩衝。

無緩衝

表示的是沒有緩衝,可以將資訊立馬顯現出來,典型代表是標準錯誤流stderr。

行快取

0.表示的是輸入輸出遇到換行才執行真正的i/o操作。典型的代表是鍵盤的操作

1.緩衝區如果滿了,就會真正寫道顯示器上

2.如果遇到/n也會寫道顯示器上 如果把資料寫到檔案中,/n就不能重新整理緩衝區了

3.程式結束的時候也「可能」會重新整理

4.fflush 手動重新整理

全緩衝

表示的是輸入輸出寫滿緩衝區才執行i/o操作。典型的代表是磁碟的讀寫。

printf是乙個行緩衝函式,先寫到緩衝區,滿足條件後,才將緩衝區刷到對應檔案中,刷緩衝區的條件如下:(任滿足其一即可)

(1)緩衝區填滿;

(2)寫入的字元中有『\n』 ,』\r』;

(3)呼叫fflush手動重新整理緩衝區;

(4)呼叫scanf要從緩衝區中讀取資料時,也會將緩衝區內的資料重新整理;

/n 與 /r
/n表示換行,另起新行,游標來到下一行行首。可以起到重新整理緩衝區的作用(只針對顯示器)

/r 表示回車,每次列印完游標回到最開始位置

1 #include 

//usleep的標頭檔案 只有再linux下有這個標頭檔案

終端的字元顏色由轉義序列控制,是文字模式下的系統顯示功能,與具體語言無關。轉義序列以控制字元』esc』開頭。多數轉義序列超過兩個字元,故通常以』esc』和左括號』[『開頭。該起始序列稱為控制序列引導符,通常由』\033[『或』\e[『代替。

//恢復預設顏色

6 #define red "\e[0;31m"

//在實現中為了增加可讀性將顏色定義為巨集,再進行使用。

7 #define blue "\e[0;34m"89

intmain()

1019

else

20printf

(blue"[%-100s][%d%%][%c]\r"none, bar , i , lable[i%4]

);21fflush

(stdout);

22 bar[i++]=

'#';

23usleep

(100000);

24}25printf

("\n");

26return0;

27}

Linux小程式 彩色進度條

在實現彩色彩色進度條的過程中,我們先來了解一下相關的知識,這樣才能幫助我們更好的實現進度條。一 相關背景 在linux下安裝檔案都會有乙個進度條來提示我們安裝的進度,它裡面會動態增長的乙個影象表示進度,同時還有百分數表示安裝百分比等等資訊。二 緩衝區的相關知識 一般c庫函式寫入檔案是全緩衝方式,而寫...

Linux下彩色進度條

回車與換行 緩衝區概念 乙個緩衝區物件是固定數量的資料的容器,其作用是乙個儲存器 記憶體 或者分段運輸區,在這裡資料可被儲存並在之後用於檢索。緩衝區可分為 全緩衝,行緩衝,不帶緩衝 全緩衝 當填滿標準io的快取後才進行實際io操作。windows和linux都可以通過給 mode設為 iofbf設定...

shell之彩色進度條

bin bash b for i 0 i 100 i 1 do printf e 32m progress e 31m 100s e 33m d r b i 100s 設定初始顯示格數 r return,回到開始輸出的地方 sleep 0.1 b done echo 下面是字型輸出顏色及終端格式控制...