Linux下彩色進度條的實現

2021-09-19 04:57:29 字數 1172 閱讀 8314

實現乙個彩色進度條的前提是要了解linux下如何改變shell的輸出顏色,shell的輸出顏色改變是通過轉義序列完成的。

多數轉義序列以控制字元 『esc』 和左中括號 『[』 開頭。該起始序列稱為控制序列引導符,通常由 『\033[』 或 『\e[』 代替

通過轉義序列設定終端顯示屬性時,採用以下格式:\033[屬性m 或 \e[屬性m

其中:』\033[』 或 『\e』 引導轉義序列;'m』表示設定屬性並結束轉移序列。屬性值可以有多個。看下圖是屬性表

比如我們要設定字型及背景的顏色可以這樣寫:

那麼這下再來寫彩色進度條就容易多了

1

/*彩色進度條*/

23 #include

4 #include

5 #include

6 #define none "\e[0m"

//用於恢復預設的終端輸出屬性,否則會影響後續的輸出

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

8 #define blue "\e[0;34m"

9 #define yellow "\e[0;33m"

10 #define purple "\e[0;35m"

1112

intmain()

13;15 size_t i =0;

16const

char

* label =

"-/\\|"

;//模擬轉圈

17for

(; i <=20;

++i)

31printf

("\n");

32return0;

33}

解釋一些內容:\r 是回到行首,讓進度條逼真的做法。

\e[0m 是恢復預設的輸出屬性,如果不設定就會影響下一次的輸出屬性。

執行看下結果:

Linux下彩色進度條的實現

在linux下安裝軟體的過程中會出現乙個進度條,它通過動態增加一些符號來表示安裝進度。今天我們就來模擬實現一下乙個進度條。在實現進度條之前,首先需要了解一些概念。一.緩衝區 緩衝區分為三種 無緩衝,行緩衝和全緩衝。無緩衝 指沒有緩衝,立即顯示資訊。行緩衝 輸入輸出遇到換行符才進行io操作。全緩衝 輸...

Linux下彩色進度條

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

Linux下簡易彩色進度條

個人部落格傳送門 前言在linux下安裝檔案的時候,都會有個進度條來提示我們安裝的進度是多少。這裡我們模擬輸出這個進度條。主要用到輸出函式的操作 緩衝區的重新整理 usleep函式 linux終端顏色的顯示等知識。效果如下 鋪墊知識點 緩衝區 緩衝區分位三種 無緩衝,行緩衝,全緩衝。無緩衝 沒有緩衝...