C++里如何修改命令行控制台的背景和字体颜色?

2024年12月03日 00:36
有3个网友回答
网友(1):

调用系统API的函数system("COLOR 7a"); //注意中间有空格
颜色属性由两位十六进制数字指定,第一个为背景色,第二个则为前景色。
每个数字可以为以下任何值之一: 0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 湖蓝色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色如果只传"color"参数不加颜色数字,将会还原为系统默认的颜色。

网友(2):

用WIN API函数,#include //使用api //////////////////////////////////////////////////////////////////////////////typedef enum _PCCOLOR
{/*颜色同义词*/
BLACK = 0,
BLUE = 1,
DARK_GREEN = 2,
LIGHT_BLUE = 3,
RED = 4,
PURPLE = 5,
ORANGE = 6,
GREY = 7,
DARKER_GREY = 8,
MEDIUM_BLUE = 9,
LIGHT_GREEN = 10,
TEAL = 11,
RED_ORANGE = 12,
LIGHT_PURPLE = 13,
YELLOW = 14,
WHITE = 15
}PCCOLOR; /*设置字体颜色*/int setTextColor(unsigned char fColor)
{
HANDLE hd = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO csbInfo;
GetConsoleScreenBufferInfo(hd, &csbInfo);
return SetConsoleTextAttribute(hd, fColor | (csbInfo.wAttributes&~0x0F));
}/*设置背景颜色*/int setBackColor(unsigned char bColor)
{
HANDLE hd = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO csbInfo;
GetConsoleScreenBufferInfo(hd, &csbInfo);
return SetConsoleTextAttribute(hd, (bColor << 4) | (csbInfo.wAttributes&~0xF0));
}

网友(3):

color + 字母/数字