1. 程式人生 > >ubuntu下,對於終端字型顏色的設定

ubuntu下,對於終端字型顏色的設定

/* ubuntu 終端輸出字型顏色的設定
 
   使用轉義字元來改變字型顏色,這些轉義字元都是一些特殊的字元,不是程式中用到的空格/ 換行之類的符號
  
      "\033[ xm          \033[xm"  分別表示句子始末字型的顏色
 
     字型色:30 --- 39          字型背景色:40 -- 49
      \033[30m       黑色           \033[ 40m       
      \033[31m       紅色            \033[ 41m   
      \033[32m       綠色            \033[ 42m  
      \033[33m       黃色            \033[ 43m 
     \033[34m        藍色            \033[ 44m  
     \033[35m        紫色            \033[ 45m
     \033[36m        深綠            \033[ 46m  

     \033[37m        灰白            \033[ 47m

     \033[38m        白色           \033 [ 48 m
     \033[39m        亮白           \033 [ 49 m
 
      其他控制:
        \033[0m  關閉所有屬性
        \033[1m  設定高亮度
         \033[4m  下劃線
         \033[7m   反顯
         \033[8m   消隱         

  */

     這些主要用在程式輸出語句中,使用這些來修改輸出字型的顏色,針對的是linnux下的終端,本人沒有在其他執行環境下測試,下面把測試的程式碼寫進來。

#include <iostream>

using namespace std;

  int main()
  {
      cout << "\033[30m 1 first line" << endl;              //black
      cout << "\033[31m 2 second line " << endl;      // red
      cout << "\033[32m 3 third line " << endl;           // green
      cout << "\033[33m 4 fourth line" << endl;         // yellow
      cout << "\033[34m 5 first line" << endl;            // blue
      cout << "\033[35m 6 second line " << endl;    // purple
      cout << "\033[36m 7 third line " << endl;         //  deep green
      cout << "\033[37m 8 first line" << endl;
      cout << "\033[38m 9 second line " << endl;
      cout << "\033[39m 10 third line " << endl;
      //  這些轉義符,其後輸出的字型會按照前面定義的顏色進行輸出,要改變顏色需要重新使用新的顏色轉義字元,或者在句子末尾新增 \033 [ 0m  關閉字型顏色屬性

       cout << "顏色:" << endl;
      cout << "\033[0m" << endl;
 
      cout << "\033[34m \033[1m Test gaoliang \033[0m" << endl;       //  變粗了 高亮       可以疊加此類轉義字元
      cout << "\033[32m \033[1m \033[4m Test xaihuanxian \033[0m" << endl;
 
     cout << "\033[32m \033[7m   Test fanxain \033[0m" << endl;     // 加了背景色
 
     cout << "\033[34m \033[8m Test input hidden:" << endl;
      //string name;
      //cin >> name;
      cout << "\033[0m";
    

     // 使用一些特殊符號的unicode編碼進行輸出,並改變其填充顏色

      cout << "\033[31m \u2764 \u2764 \u2764 \u2764" << endl;  // 心型圖示
      cout << "\u2605" << endl;  // 星星
      // 通過複製特殊圖片
      cout << "卐" << endl;
  }
注意點:
    1  其中,一般我們通過 "  \033 [ xm         \033 [ xm   "  一對進行控制,前面的控制跟在它後面的句子,後面的控制該句後面進行輸出的句子,如果改變一條句子的字型顏色,可以在後面使用 \033 [ 0m  關閉屬性,那麼後面的句子就不會受前面的影響了;

    2  其中的顏色控制符可以疊加使用,比如控制字型顏色的,和控制字型背景色的,及控制其他屬性的可以結合起來使用

    3  有時候想要輸出一些特殊的字元,使介面美化,可以參考http://blog.csdn.net/tectool/article/details/51577914 該部落格,其中的js轉義字元,在ubuntu下也可以使用;