Linux下實現進度條程序的簡單實現

1.進度條:

進度條即計算機在處理任務時,實時的,以圖片形式顯示處理任務的速度,完成度,剩餘未完成任務量的大小,和可能需要處理時間,一般以長方形條狀顯示。
產生進度條的元素:
1.一個不斷向右增長的容器,可以直觀看出當前的進度。 “%md”,預寬爲m,右對齊,”%-md”,左對齊
2.一個反應進度的百分比,在這裏用到轉義字符”%%”或者”\%”,都代表的是”%”,”\”代表’\’.
3.一個標誌,反應該進度是正在運行還是卡死,在程序中體現的是const char *arr=”-|/”;,是順時針輸出.
列如:
[%25][/][############]
[%50][][##########################]


  1. 緩衝區概念:

緩衝區(buffer)這個中文譯意源自當計算機的高速部件與低速部件通訊時,必須將高速部件的輸出暫存到某處,以保證高速部件與低速部件相吻合. 後來這個意思被擴展了,成爲”臨時存貯區”的意思。
緩衝區分爲:無緩衝、行緩衝、全緩衝。
無緩衝:表示的是沒有緩衝,可以將信息立馬顯現出來,典型代表是標準錯誤流stderr。
行緩衝:表示的是輸入輸出遇到換行才執行真正的I/O操作。典型的代表是鍵盤的操作。
全緩衝:表示的是輸入輸出寫滿緩衝區才執行I/O操作。典型的代表是磁盤的讀寫。
3.fflush:
fflush,函數名, 清除讀寫緩衝區,需要立即把輸出緩衝區的數據進行物理寫入時。
fflush(stdin)刷新標準輸入緩衝區,把輸入緩衝區裏的東西丟棄[非標準]
fflush(stdout)刷新標準輸出緩衝區,把輸出緩衝區裏的東西打印到標準輸出設備上

4.usleep:

usleep函數能把進程掛起一段時間, 單位是微秒(千分之一毫秒)。本函數可暫時使程序停止執行。

程序實現
這裏寫圖片描述
makefile
這裏寫圖片描述

這裏寫圖片描述

彩色輸出參考:[http://www.cnblogs.com/frydsh/p/4139922.html]
具體實現如下
這裏寫圖片描述

這裏寫圖片描述

前景色 字體顏色
“\e[30m” 灰色
“\e[31m” 紅色
“\e[32m” 綠色
“\e[33m” 黃色
“\e[34m” 藍色
“\e[35m” 紫色
“\e[36m” 淡藍色
“\e[37m” 白色
背景色 顏色
[40m” 灰色
“\e[41m” 紅色
“\e[42m” 綠色
“\e[43m” 黃色
“\e[44m” 藍色
“\e[45m” 紫色
“\e[46m” 淡藍色
其他 甦醒
\033[0m 關閉所有屬性
\033[1m 設置高亮度
\03[4m 下劃線
\033[5m 閃爍
\033[7m 反顯
\033[8m 消隱
\033[30m – \033[37m 設置前景色
\033[40m – \033[47m 設置背景色
\033[nA 光標上移n行
\03[nB 光標下移n行
\033[nC 光標右移n行
\033[nD 光標左移n行
\033[y;xH 設置光標位置
\033[2J 清屏
\033[K 清除從光標到行尾的內容
\033[s 保存光標位置
\033[u 恢復光標位置
\033[?25l 隱藏光標
\33[?25h 顯示光標
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章