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