調用Windows.h
頭文件下的SetConsoleTextAttribute
函數改變文字和背景顏色。
調用形式為:
SetConsoleTextAttribute( HANDLE hConsoleOutput, WORD wAttributes );hConsoleOutput
表示控制台緩沖區句柄,可以通過GetStdHandle(STD_OUTPUT_HANDLE)
來獲得;wAttributes
表示文字顏色和背景顏色。WORD
在windows.h
中定義,等同於unsigned short
,使用低4位表示文字(前景)顏色,高4位表示文字背景顏色,所以它的取值為xx
。
x為一位16進制數,即0~F
都可以使用,可以隨意組合。
0~F 分別代表的顏色如下:
0 = 黑色 8 = 灰色 1 = 淡藍 9 = 藍色
2 = 淡綠 A = 綠色 3 = 湖藍 B = 淡淺綠
C = 紅色 4 = 淡紅 5 = 紫色 D = 淡紫
6 = 黃色 E = 淡黃 7 = 白色 F = 亮白
2 = 淡綠 A = 綠色 3 = 湖藍 B = 淡淺綠
C = 紅色 4 = 淡紅 5 = 紫色 D = 淡紫
6 = 黃色 E = 淡黃 7 = 白色 F = 亮白
1 #include<stdio.h> 2 #include<windows.h> 3 int main() 4 { 5 HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); 6 SetConsoleTextAttribute(hConsole, 0x2C ); 7 puts("C語言中文網"); 8 return 0; 9 }

如果只希望設置文字顏色,背景保持黑色,那么也可以只給出一位16進制數,例如:
SetConsoleTextAttribute(hConsole, 0xC ); //將文字顏色設置為紅色 SetConsoleTextAttribute(hConsole, 0xF ); //將文字顏色設置為白色
1 #include <stdio.h> 2 #include <windows.h> 3 int main(){ 4 HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); 5 SetConsoleTextAttribute(hConsole, 0xC ); 6 puts("紅色文字"); 7 SetConsoleTextAttribute(hConsole, 0xF ); 8 puts("白色文字"); 9 SetConsoleTextAttribute(hConsole, 2 ); 10 puts("淡綠色文字"); 11 return 0; 12 }