在C++开发中,修改控制台的颜色可以让输出内容更直观,也能满足一些娱乐场景下的个性化需求,其中通过system函数调用color命令是最容易上手的方式,不需要复杂的系统编程知识就能快速实现效果。

system color命令的基本用法
system是C标准库中的函数,用于执行操作系统的命令行指令,在Windows系统下,color命令可以修改控制台的背景和文字颜色,使用方式非常简单,只需要在程序中调用system并传入对应的color参数即可。
color命令的参数格式为color 背景色代码文字色代码,两个代码都是十六进制的单个字符,分别对应背景和前景(文字)的颜色,两个代码之间没有空格。
颜色代码对照表
以下是Windows控制台color命令支持的颜色代码与对应颜色的说明:
| 代码 | 颜色 | 代码 | 颜色 |
|---|---|---|---|
| 0 | 黑色 | 8 | 灰色 |
| 1 | 蓝色 | 9 | 淡蓝色 |
| 2 | 绿色 | A | 淡绿色 |
| 3 | 浅绿色 | B | 淡浅绿色 |
| 4 | 红色 | C | 淡红色 |
| 5 | 紫色 | D | 淡紫色 |
| 6 | 黄色 | E | 淡黄色 |
| 7 | 白色 | F | 亮白色 |
system color命令使用示例
下面是一个简单的示例程序,演示如何使用system color命令修改控制台颜色:
#include <iostream>
#include <stdlib.h> // 包含system函数所需的头文件
using namespace std;
int main() {
// 设置背景为黑色,文字为亮白色
system("color 0F");
cout << "这是亮白色文字,背景为黑色" << endl;
// 设置背景为蓝色,文字为淡黄色
system("color 1E");
cout << "这是淡黄色文字,背景为蓝色" << endl;
// 设置背景为绿色,文字为红色
system("color 2C");
cout << "这是红色文字,背景为绿色" << endl;
// 恢复默认颜色,默认是黑色背景白色文字
system("color 07");
cout << "恢复默认控制台颜色" << endl;
return 0;
}
编译运行上述程序后,控制台会依次切换不同的颜色组合,最后恢复到默认状态。需要注意的是,system函数执行时会调用系统命令行,所以程序运行时会短暂打开命令行窗口执行指令,属于正常的表现。
其他修改控制台颜色的方法
除了使用system color命令,还可以通过Windows API来修改控制台颜色,这种方式不需要调用系统命令行,执行效率更高,也更适合正式的开发场景。
可以使用SetConsoleTextAttribute函数,该函数需要包含windows.h头文件,通过传入控制台句柄和颜色属性来修改文字和背景颜色,颜色属性可以通过前景色和背景色的常量组合得到。
以下是使用Windows API修改颜色的示例:
#include <iostream>
#include <windows.h> // 包含Windows API相关定义
using namespace std;
int main() {
// 获取标准输出句柄
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
// 设置背景为蓝色,文字为白色,FOREGROUND_INTENSITY表示文字高亮
SetConsoleTextAttribute(hConsole, BACKGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout << "使用Windows API设置的蓝底白字" << endl;
// 设置背景为绿色,文字为红色
SetConsoleTextAttribute(hConsole, BACKGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY);
cout << "使用Windows API设置的绿底红字" << endl;
// 恢复默认颜色,黑色背景白色文字
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cout << "恢复默认颜色" << endl;
return 0;
}
这种方式的好处是可以单独修改某一段输出的颜色,不需要全局修改整个控制台的颜色,灵活性更高。不过该方法仅适用于Windows系统,如果需要跨平台修改控制台颜色,还需要针对不同的操作系统做适配处理。
注意事项
- system color命令仅适用于Windows系统的控制台,在Linux或者macOS的终端下无法生效,会提示命令不存在的错误。
- 如果只传入一个颜色代码,比如
system("color F"),只会修改文字颜色,背景会保持原来的颜色。 - 使用system函数会有一定的性能开销,因为需要启动系统命令行进程,如果频繁修改颜色,更推荐使用Windows API的方式。
- 控制台颜色修改后,后续的所有输出都会沿用当前的颜色设置,直到再次修改颜色或者程序退出。
C++system_color控制台变色控制台颜色修改Windows_API修改时间:2026-06-09 19:33:51