答案是使用Windows API的SetConsoleTextAttribute()函数可修改C++控制台文本颜色,需包含windows.h头文件,通过设置颜色代码改变前景色和背景色,颜色持续生效直至重新设置,示例中分别输出红、绿、亮黄及默认颜色文字,跨平台应用需考虑ANSI转义序列兼容性。

在C++中,可以通过调用Windows API函数来修改控制台输出的文本颜色。这种方法适用于Windows平台下的控制台程序(如使用Visual Studio编译运行的程序)。核心函数是SetConsoleTextAttribute(),它定义在windows.h头文件中。
包含必要头文件
要使用颜色控制功能,需包含以下头文件:
#include iostream>
#include windows.h>
设置文本颜色的基本方法
使用SetConsoleTextAttribute()函数可以改变后续输出文本的颜色。该函数接受两个参数:控制台句柄和颜色属性。常用方式如下:
立即学习“C++免费学习笔记(深入)”;
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, color_code);
其中color_code是一个整数值,代表前景色(文字颜色)和背景色的组合。
颜色代码说明
颜色由4位二进制数表示,低4位控制前景色,高4位控制背景色。常用前景色代码如下:
- 1:蓝色
- 2:绿色
- 3:青色
- 4:红色
- 5:紫色
- 6:黄色
- 7:白色(默认)
- 8:灰色
- 9:亮蓝色
- 10:亮绿色
- 12:亮红色
- 14:亮黄色
- 15:亮白色
示例代码
下面是一个完整示例,展示如何输出不同颜色的文本:
#include
#include windows.h>
using namespace std;
int main() {
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
// 红色文字
SetConsoleTextAttribute(hConsole, 4);
cout
// 绿色文字
SetConsoleTextAttribute(hConsole, 2);
cout
// 亮黄色文字(背景为黑色)
SetConsoleTextAttribute(hConsole, 14);
cout
// 恢复默认颜色
SetConsoleTextAttribute(hConsole, 7);
cout
return 0;
}
注意事项
颜色设置会持续生效,直到再次更改。如果希望恢复默认颜色,通常使用7(白色/灰色)。跨平台程序无法直接使用此方法,Linux/macOS需使用ANSI转义序列。若需兼容多平台,建议封装颜色输出函数进行条件编译处理。
基本上就这些。不复杂但容易忽略的是记得恢复颜色或统一管理状态。










