當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > Linux下printf輸出字符串的顏色
Linux下printf輸出字符串的顏色
時(shí)間:2018-09-21 來(lái)源:未知
基本打印格式:
printf("\033[字背景顏色;字體顏色m字符串\033[0m" );
printf("\033[41;32m字體背景是紅色,字是綠色\033[0m\n");
41是字背景顏色, 32是字體的顏色, 字體背景是紅色,字是綠色是要輸出的字符串. 后面的\033 ...\033[0m是配對(duì)的為控制碼。
先來(lái)說(shuō)一下顏色和背景的代碼
顏色代碼:
QUOTE:
字背景顏色范圍: 40--49 字顏色: 30--39
40: 黑 30: 黑
41: 紅 31: 紅
42: 綠 32: 綠
43: 黃 33: 黃
44: 藍(lán) 34: 藍(lán)
45: 紫 35: 紫
46: 深綠 36: 深綠
47: 白色 37: 白色
注意到總體范圍是從30到49,在printf("\033[41;32m字體背景是紅色,字是綠色\033[0m\n");中\(zhòng)033[41;32m是可以單獨(dú)只指定背景顏色或者字體顏色的,這樣另外的部分就是默認(rèn)狀態(tài)如\033[32m 表示字體是綠色背景默認(rèn)而\033[41m 表示背景為紅色字體默認(rèn)。
在“字體背景是紅色,字是綠色”這一部分可以是要輸出的字符串,也可以是格式控制串包含格式控制符如printf("\033[41;32m%2d\033[0m\n",a);則會(huì)輸出int型的a,背景占2字符為紅色,字體為綠色。
我們?cè)僬f(shuō)一下控制碼,不同的控制碼會(huì)產(chǎn)生不同的效果,這些屬性可以寫(xiě)在后面,也可以加載前面如printf("\033[0m\033[41;32m%2d\n",a);也是可以的,不同在于是先打印再添加屬性還是先添加屬性再打印還是先打印再添加屬性。當(dāng)然一次也可以添加多個(gè)屬性,總體原則是格式為:\33[ + 屬性代碼 隨你喜好開(kāi)心就好。

ANSI控制碼:
QUOTE:
\033[0m 關(guān)閉所有屬性這個(gè)關(guān)閉的屬性是指的之前通過(guò)ANSI控制碼獲得的屬性,這些屬性得后遇到\033[0m會(huì)關(guān)閉。
\033[1m 設(shè)置高亮度 (光標(biāo)過(guò)出均變?yōu)楸尘吧?/p>
\03[4m 下劃線
\033[5m 閃爍
\033[7m 反顯
\033[8m 消隱
\033[30m -- \033[37m 設(shè)置前景色
\033[40m -- \033[47m 設(shè)置背景色
\033[nA 光標(biāo)上移n行
\03[nB 光標(biāo)下移n行
\033[nC 光標(biāo)右移n行
\033[nD 光標(biāo)左移n行
\033[y;xH設(shè)置光標(biāo)位置
\033[2J 清屏
\033[K 清除從光標(biāo)到行尾的內(nèi)容
\033[s 保存光標(biāo)位置
\033[u 恢復(fù)光標(biāo)位置
\033[?25l 隱藏光標(biāo)
\33[?25h 顯示光標(biāo)
在說(shuō)一下,其實(shí)這些屬性信息中的相關(guān)數(shù)字也是可以通過(guò)變量的傳入傳進(jìn)去的例如:
for (x = p_x + 36, y = p_y + 1; y <= 25; y++)
printf("\33[%d;%dH\33[41m==\33[0m", y, x);
這里光標(biāo)的衛(wèi)士就是通過(guò)變量傳入的,==是打印內(nèi)容,顏色也是這樣,我們可以建立隨機(jī)傳入。這樣, 在某些時(shí)候就可以實(shí)現(xiàn)動(dòng)態(tài)的輸出,或者打印一些圖案。
華清遠(yuǎn)見(jiàn)90+項(xiàng)目獲批!教育部2021最新協(xié)同育人項(xiàng)目名
華清遠(yuǎn)見(jiàn)榮獲2021騰訊教育“年度口碑影響力職業(yè)教育品
華清遠(yuǎn)見(jiàn)受邀參加2021年武漢民辦高校信息學(xué)科合作聯(lián)盟
溫暖同行共創(chuàng)佳績(jī) 2019華清遠(yuǎn)見(jiàn)北京總部年會(huì)大曝光
助力高校AI人工智能學(xué)科建設(shè) 華清遠(yuǎn)見(jiàn)人工智能師資班
華清遠(yuǎn)見(jiàn)受邀參加四川省物聯(lián)網(wǎng)年會(huì),榮獲優(yōu)秀企業(yè)專家
