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[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下也可以使用;