Linux C語言實現帶顏色進度條
阿新 • • 發佈:2018-12-11
Linux 的 bash 命令列直譯器會輸出有顏色的字型
那怎麼做到的呢?
print( "\033[字背景顏色;字型顏色m字串\033[0m");
下面給出一些背景顏色和字型顏色 具體搭配就看你的嘍 字背景顏色範圍:40----49 40:黑 41:深紅 42:綠 43:黃色 44:藍色 45:紫色 46:深綠 47:白色 字顏色:30-----------39 30:黑 31:紅 32:綠 33:黃 34:藍色 35:紫色 36:深綠 37:白色
嘗試寫一個帶顏色的進度條
// 嘗試寫一個進度條程式 # include <stdio.h> # include <unistd.h> #define N 32 void process_bar(void); int main(void) { process_bar(); return 0; } void process_bar(void) { char buf[N] = {0}; int i = 0; for(i = 0; i < N; ++i) { buf[i] = '#'; if((float)i / N <= 0.15) { // 進度小於 15% -- 紅色 printf("\33[31m [%3.0f%%][%s]\r\33[0m", ((float)i/N)*100, buf); } else if((float)i / N <= 0.8) { // 進度 大於 15% 小於 80% -- 黃色 printf("\33[33m [%3.0f%%][%s]\r\33[0m", ((float)i/N)*100, buf); } else { // 進度 大於 80% 綠色 printf("\33[32m [%3.0f%%][%s]\r\33[0m", ((float)i/N)*100, buf); } fflush(stdout); // 重新整理輸出緩衝區 usleep(500 * 100); // 需包含標頭檔案 <unistd.h> 單位是 微秒( 1秒 = 10^6 微秒 ) } printf("\n"); }
看到這了,你怎麼不自己試試呢?