在C++中设置控制台输出颜色需包含windows.h头文件,调用GetStdHandle获取输出句柄后,使用SetConsoleTextAttribute函数设置前景色和背景色组合,如12为亮红、236为红字黄底,最后应恢复默认颜色7,该方法仅适用于Windows平台。

在C++中设置控制台输出颜色,主要通过调用Windows API中的SetConsoleTextAttribute函数实现。这个方法适用于Windows平台的控制台程序,比如使用Visual Studio或Code::Blocks等编译器开发的命令行应用。
要使用控制台颜色功能,需要包含windows.h头文件,它提供了对Windows API的访问:
#include <iostream> #include <windows.h> using namespace std;
SetConsoleTextAttribute函数用于更改后续文本的显示颜色。它的第一个参数是控制台输出句柄,第二个参数是颜色属性值。
获取句柄的方法是调用GetStdHandle(STD_OUTPUT_HANDLE)。
立即学习“C++免费学习笔记(深入)”;
颜色由前景色(文字颜色)和背景色组合而成,常用的颜色常量如下:
例如,输出红色文字:
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hConsole, 12); // 12代表亮红 cout << "这是红色文字" << endl;
可以通过将前景色和背景色的值相加来设置背景。例如,红色文字+黄色背景:
SetConsoleTextAttribute(hConsole, 12 + (14 << 4)); // 14<<4 表示背景色 // 或者直接写成 12 + 224 = 236 SetConsoleTextAttribute(hConsole, 236);
其中背景色需要左移4位(乘以16),因为高4位表示背景色,低4位表示前景色。
设置颜色后,后续所有输出都会使用该颜色。建议在结束时恢复为默认颜色(通常是浅灰色文字+黑色背景,即7):
SetConsoleTextAttribute(hConsole, 7);
完整示例:
#include <iostream>
#include <windows.h>
using namespace std;
int main() {
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, 10);
cout << "绿色文字" << endl;
SetConsoleTextAttribute(hConsole, 12);
cout << "红色文字" << endl;
SetConsoleTextAttribute(hConsole, 15 + (1 << 4)); // 白字蓝底
cout << "白色文字,蓝色背景" << endl;
SetConsoleTextAttribute(hConsole, 7); // 恢复默认
return 0;
}基本上就这些。注意这种方法只在Windows控制台有效,Linux/macOS需使用ANSI转义序列。如果你写的是跨平台程序,要考虑不同系统的兼容处理。
以上就是c++++怎么设置控制台输出颜色_c++控制台输出颜色设置方法的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号