想要在C++中输出其他颜色的文字?
2026-09-06 19:27:32
发布于:浙江
如果想要输出各种颜色的文字,那么你点进来时对的!
超级简单的代码:
#include <iostream>
#include <windows.h>
WORD setColorAuto(int textColor, int backColor = 0){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(hConsole, &csbi);
WORD originalColor = csbi.wAttributes;
WORD newColor = static_cast<WORD>((backColor << 4) | textColor);
SetConsoleTextAttribute(hConsole, newColor);
return originalColor;
}
void printColor(const char* str, int textColor, int backColor = 0){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(hConsole, &csbi);
WORD originalColor = csbi.wAttributes;
WORD newColor = static_cast<WORD>((backColor << 4) | textColor);
SetConsoleTextAttribute(hConsole, newColor);
std::cout << str;
SetConsoleTextAttribute(hConsole, originalColor);
}
int main(){
printColor("亮红色文字,背景保持控制台黑色\n",12);
std::cout << "普通文字1\n";
printColor("亮绿色文字,背景不变\n",10);
std::cout << "普通文字2\n";
// 如果想要自定义背景,手动传第二个参数
printColor("红底黄字",14,4);
return 0;
}
使用方法
直接调用printColor函数,格式为:
printColor(要输出的表达式,文本颜色,文本背景颜色);
颜色表格:
| 编号 | 颜色 | 说明 |
|---|---|---|
| 0 | 黑色 | 控制台默认背景色 |
| 1 | 蓝色 深蓝色 | 无 |
| 2 | 绿色 深绿色 | 无 |
| 3 | 青色 (蓝绿) 深青 | 无 |
| 4 | 红色 深红色 | 无 |
| 5 | 紫色 深紫 / 品红 | 无 |
| 6 | 土黄色 暗黄、棕黄 | 无 |
| 7 | 浅白 (灰白) | 系统默认文字颜色 |
| 8 | 灰色 暗灰 | 无 |
| 9 | 亮蓝色 鲜艳蓝 | 无 |
| 10 | 亮绿色 鲜艳绿 | 无 |
| 11 | 亮青色 亮蓝绿 | 无 |
| 12 | 亮红色 大红色 | 无 |
| 13 | 亮紫色 亮品红 | 无 |
| 14 | 亮黄色 金黄色 | 无 |
| 15 | 亮白色 纯白高亮 | 无 |
感谢各位对CXOJ的支持,下次再见!
全部评论 3
不过确实好用
2026-09-06 来自 浙江
0《简单》
2026-09-06 来自 浙江
0NICE!!!
2026-09-06 来自 山东
0




























有帮助,赞一个