0.前言
怎么在程序中改字体的显示颜色?
这个问题有两个答案:
1.system函数
1.1.头文件
如果用 函数, 就需要头文件.
#include <Windows.h>
1.2.十六进制字母表
如果用 system 函数就要用到十六进制数字来控制颜色.
颜色对照表:
0 = 黑色
1 = 蓝色
2 = 绿色
3 = 湖蓝色
4 = 红色
5 = 紫色
6 = 黄色
7 = 白色
8 = 灰色
9 = 亮蓝色
A = 亮绿色
B = 亮湖蓝色
C = 亮红色
D = 亮紫色
E = 亮黄色
F = 亮白色
1.3.用法
我们可以在 system 后写上括号, 然后像下图中在括号中写上代码.
system("color xx");
在括号中写上上引号和下引号, 在中间写上 "color" 然后写一个空格, 后面的第一个 x 表示背景色, 第二个 x 表示字体的颜色, 两个 x 都用刚才的十六进制字母表示.
1.4.示例
#include <bits/stdc++.h>
#include <Windows.h>
using namespace std;
int main()
{
system("color 04"); // 颜色改为红色
cout << "Hello World" << endl;
system("color 06"); // 颜色改为黄色
cout << "Hello World" << endl;
system("color 0C"); // 颜色改为亮红色
cout << "Hello World" << endl;
return 0;
}
我们可以发现所有 Hello World 的颜色都是亮红色, 这是因为 system函数 是把整个控制台的颜色都修改了.
2.SetConsoleTextAttribute函数
2.1.头文件
如果用 函数, 也需要头文件.
#include <Windows.h>
2.2.十六进制字母表
这里的十六进制字母表与上文 system 函数的相同.
2.3.用法
我们可以在 SetConsoleTextAttribute 后写上括号, 然后像下图中在括号中写上代码.
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0xmm);
在括号中写上上引号和下引号, 在中间写上 "GetStdHandle(STD_OUTPUT_HANDLE), 0x" , 后面的第一个 m 表示背景色, 第二个 m 表示字体的颜色, 两个 m 都用刚才的十六进制字母表示.
2.4.示例
#include <bits/stdc++.h>
#include <Windows.h>
using namespace std;
int main()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x04);
cout << "Red: " << endl;
cout << "Hello World!" << endl << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x06);
cout << "Yellow: " << endl;
cout << "Hello World!" << endl << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x02);
cout << "Green: " << endl;
cout << "Hello World!" << endl << endl;
return 0;
}
我们可以发现每个 Hello World 的颜色都不一样, 这是因为 SetConsoleTextAttribute函数 只修改了接下来输出的字体的颜色.
好了, 这篇文章就结束了~