调用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 }