字符串打印顏色

字符串打印顏色

適用於 調試輸出
printf() 或者 qDebug() 等等

語法字符串[共10個字符長度]:

控制字符 字符 顯示方式字符 字符 前景色字符 字符 背景色代字符 字符
字符 ESC [ 1個字符數 ; 2個字符數 ; 2個字符數 m
ASCII碼 0x1b 0x5b [0x30-0x38] 0x3b 0x33[0x30-0x37] 0x3b 0x34[0x30-0x37] 0x6d

字符串中轉義字符

對於 ASCII 編碼,0~31(十進制)範圍內的字符爲控制字符,它們都是看不見的,不能在顯示器上顯示,甚至無法從鍵盤輸入,只能用轉義字符的形式來表示

轉義字符的初衷是用於 ASCII 編碼,所以它的取值範圍有限:

  • 八進制形式的轉義字符最多後跟三個數字,也即\ddd,最大取值是\177;
  • 十六進制形式的轉義字符最多後跟兩個數字,也即\xdd,最大取值是\x7f。

所以 控制字符Esc ASCII碼錶示爲 16進制 0x1b 或者 8進制033,在c語言中字符轉義表示爲 \x1B 或者 \033

1 字符串 8進製表示法

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

    //--8
    qDebug()<<"\033[1;34;43m";	//--設置屬性
    qDebug()<<"color text ";	//--帶顏色輸出的文本
    qDebug()<<"\033[0;m";		//--關閉屬性

2 字符串 16進製表示法

\x1b[顯示方式;前景色;背景色m
    //--16
    qDebug()<<"\x1b[1;34;43m";	//--設置屬性
    qDebug()<<"color text ";	//--帶顏色輸出的文本
    qDebug()<<"\033[0;m";		//--關閉屬性

3 字符串 ASCII碼數組表示法

直接使用計算機內存中表示數據的ASCII碼代替

    char str[10]={0x1b,0x5b,0x31,0x3b,0x33,0x34,0x3b,0x34,0x33,0x6d};
    qDebug()<<str<<"str[10]";					//--設置屬性
    for (int i=0;i<10;i++) {					
        qDebug("str[%d]=0x%02x",i,str[i]);		//--帶顏色輸出的文本
    }
    qDebug()<<"\x1b[0m";						//--關閉屬性

在這裏插入圖片描述

附錄表:

顯示方式

控制屬性 1字符代碼 ASCII碼
重置所有屬性 0 0x30
高亮/加粗 1 0x31
暗淡 2 0x32
下劃線 4 0x34
閃爍 5 0x35
反轉 7 0x37
隱藏 8 0x38

前景色

前景色 2字符代碼 ASCII碼
黑色 30 0x33,0x30
紅色 31 0x33,0x31
綠色 32 0x33,0x32
黃色 33 0x33,0x33
藍色 34 0x33,0x34
品紅 35 0x33,0x35
青色 36 0x33,0x36
白色 37 0x33,0x37

背景色

背景色 2字符代碼 ASCII碼
黑色 40 0x34,0x30
紅色 41 0x34,0x31
綠色 42 0x34,0x32
黃色 43 0x34,0x33
藍色 44 0x34,0x34
品紅 45 0x34,0x35
青色 46 0x34,0x36
白色 47 0x34,0x37
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章