一種方法是直接在程序上方欄桿點右鍵,然后屬性處設置
優點是設置后一勞永逸,不需要像后面方法那樣要自己把設置寫入程序代碼內
缺點是,一旦設置了就不能再改變了,程序從頭到尾都是那種設置。
第二種方法是使用windows API函數里的system()
color /? 里面寫的很清楚
顏色屬性由兩個十六進制數字指定 -- 第一個為背景,第二個則為前景。每個數字可以為以下任何值之一:
0 = 黑色 8 = 灰色
1 = 藍色 9 = 淡藍色
2 = 綠色 A = 淡綠色
3 = 湖藍色 B = 淡淺綠色
4 = 紅色 C = 淡紅色
5 = 紫色 D = 淡紫色
6 = 黃色 E = 淡黃色
7 = 白色 F = 亮白色
如調用 system("color 02") 則顏色會變為,黑底藍字
優點是調用方便,只需要加一個函數即可
缺點是設置的是全局變量,也就是設置后,前面顯示的文字以及以后出現的都會變為這個設置
第三種方法是SetConsoleTextAttribute()包含在頭文件 windows.h
函數原型BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes);
參數
consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE);
GetStdHandle(nStdHandle)是返回標准的輸入、輸出或錯誤的設備的句柄,也就是獲得輸入、輸出/錯誤的屏幕緩沖區的句柄。
其參數nStdHandle的值為下面幾種類型的一種:
值 | 含義 |
STD_INPUT_HANDLE | 標准輸入的句柄 |
STD_OUTPUT_HANDLE | 標准輸出的句柄 |
STD_ERROR_HANDLE | 標准錯誤的句柄 |
wAttributes是用來設置顏色的參數:
wAttributes | 顏色 | 對應的值 |
FOREGROUND_BLUE | 字體顏色:藍 | 1 |
FOREGROUND_GREEN | 字體顏色:綠 | 2 |
FOREGROUND_RED | 字體顏色:紅 | 4 |
FOREGROUND_INTENSITY | 前景色高亮顯示 | 8 |
BACKGROUND_BLUE | 背景顏色:藍 | 16 |
BACKGROUND_GREEN | 背景顏色:綠 | 32 |
BACKGROUND_RED |
背景顏色:紅
|
64 |
BACKGROUND_INTENSITY | 背景色高亮顯示 | 128 |
也就是說SetConsoleTextAttribute函數是靠一個字節的低四來控制前景色,高四位來控制背景色。