經過printf設置Linux終端輸出的顏色和顯示方式

參考:html

http://www.cnblogs.com/clover-toeic/p/4031618.htmllinux

http://www.cnblogs.com/luoxu34/p/5239675.html函數

 

linux終端輸出顏色和顯示方式

終端的字符顏色是用轉義序列控制的,是文本模式下的系統顯示功能。spa

和具體的語言無關,因此C語言中的 printf/fprintf 函數也能夠這樣使用。code

本文最重要的一句話,全部的問題都在這裏,看明白了就知道怎麼改變文本的顯示方式了:htm

\033[顯示方式;前景色;背景色mblog

把\033換成\e是同樣的:class

\e[顯示方式;前景色;背景色m終端

解釋:im

顏色的轉義序列是以 ESC 開頭

顯示方式:

0(默認值)、1(高亮)、22(非粗體)、4(下劃線)、24(非下劃線)、5(閃爍)、25(非閃爍)、7(反顯)、27(非反顯)

前景色:

30(黑色)、31(紅色)、32(綠色)、 33(黃色)、34(藍色)、35(洋紅)、36(青色)、37(白色)

背景色:

40(黑色)、41(紅色)、42(綠色)、 43(黃色)、44(藍色)、45(洋紅)、46(青色)、47(白色)

\033[0m表示默認,能夠關閉前邊設置的任何效果

\033[ 的其餘格式

 \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  顯示光標

 

爲了人性化地在 printf 函數中進行着色輸出,能夠定義成一系列的宏。

#define NONE                 "\e[0m"
#define BLACK                "\e[0;30m"
#define L_BLACK              "\e[1;30m"
#define RED                  "\e[0;31m"
#define L_RED                "\e[1;31m"
#define GREEN                "\e[0;32m"
#define L_GREEN              "\e[1;32m"
#define BROWN                "\e[0;33m"
#define YELLOW               "\e[1;33m"
#define BLUE                 "\e[0;34m"
#define L_BLUE               "\e[1;34m"
#define PURPLE               "\e[0;35m"
#define L_PURPLE             "\e[1;35m"
#define CYAN                 "\e[0;36m"
#define L_CYAN               "\e[1;36m"
#define GRAY                 "\e[0;37m"
#define WHITE                "\e[1;37m"

#define BOLD                 "\e[1m"
#define UNDERLINE            "\e[4m"
#define BLINK                "\e[5m"
#define REVERSE              "\e[7m"
#define HIDE                 "\e[8m"
#define CLEAR                "\e[2J"
#define CLRLINE              "\r\e[K" //or "\e[1K\r"
相關文章
相關標籤/搜索