C++怎么输出有颜色的文字?

2024-11-25 03:21:22
推荐回答(1个)
回答1:

#include
#include
using namespace std;

int main()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
FOREGROUND_RED);
cout<<"Hello"<SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |
FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cout<<"World"<return 0;
}

这个是别人写过的一段程序

关键就是windows.h库中的一些api函数

SetConsoleTextAttribute

设置控制台文本属性

GetStdHandle(STD_OUTPUT_HANDLE)

得到当前标准输出的句柄

上面两个就这样写

关键的是下面这个:

FOREGROUND_INTENSITY | FOREGROUND_RED

其实就是强度并上颜色

如果没有FOREGROUND_INTENSITY 只有 FOREGROUND_RED

那么颜色就偏暗

#define FOREGROUND_BLUE 0x0001 // text color contains blue.
#define FOREGROUND_GREEN 0x0002 // text color contains green.
#define FOREGROUND_RED 0x0004 // text color contains red.
#define FOREGROUND_INTENSITY 0x0008 // text color is intensified.
#define BACKGROUND_BLUE 0x0010 // background color contains blue.
#define BACKGROUND_GREEN 0x0020 // background color contains green.
#define BACKGROUND_RED 0x0040 // background color contains red.
#define BACKGROUND_INTENSITY 0x0080 // background color is intensified.

这个是颜色参数

我看你图片里的几个颜色都能用这些参数拼出来

1.FOREGROUND_BLUE
2.FOREGROUND_GREEN
3.FOREGROUND_BLUE | FOREGROUND_GREEN
4.FOREGROUND_RED
5.FOREGROUND_BLUE | FOREGROUND_RED
.
..
.

10.FOREGROUND_INTENSITY | FOREGROUND_GREEN
11.FOREGROUND_INTENSITY | FOREGROUND_BLUE
12.FOREGROUND_INTENSITY | FOREGROUND_RED

中间的自己猜猜吧,就三原色的混合