在C++中,可以通过控制台输出彩在C++中输出彩色字符色文本来增强程序的可读性和用户体验。实现这一功能的关键在于使用Windows API中的SetConsoleTextAttribute()函数来设置控制台文本的颜色。
示例代码
#include <windows.h>
#include <stdio.h>
// 定义颜色打印函数
void COLOR_PRINT(const char* s, int color) {
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | color);
printf("%s", s);
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | 7); // 恢复默认颜色
}
int main() {
// 输出红色文字
COLOR_PRINT("这是红色文字\n", 4);
// 输出绿色文字
COLOR_PRINT("这是绿色文字\n", 2);
// 输出蓝色文字
COLOR_PRINT("这是蓝色文字\n", 1);
return 0;
}
在这个示例中,我们定义了一个名为COLOR_PRINT的函数,该函数接受两个参数:要输出的字符串和颜色代码。通过调用SetConsoleTextAttribute()函数,我们可以设置控制台文本的颜色。
颜色代码
在Windows控制台中,颜色代码的范围是0到15,每个数字代表一种颜色。以下是一些常用的颜色代码:
-
0 = 黑色
-
1 = 蓝色
-
2 = 绿色
-
3 = 浅绿色
-
4 = 红色
-
5 = 紫色
-
6 = 黄色
-
7 = 白色
-
8 = 灰色
-
9 = 淡蓝色
-
10 = 淡绿色
-
11 = 淡浅绿色
-
12 = 淡红色
-
13 = 淡紫色
-
14 = 淡黄色
-
15 = 亮白色
背景颜色
如果需要同时设置前景色和背景色,可以将背景色代码乘以16,然后与前景色代码进行逻辑或操作。例如:
void COLOR_PRINT2(const char* s, int front_color, int back_color) {
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(handle, BACKGROUND_INTENSITY | back_color * 16 | FOREGROUND_INTENSITY | front_color);
printf("%s", s);
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | 7); // 恢复默认颜色
}

被折叠的 条评论
为什么被折叠?



