📅  最后修改于: 2023-12-03 14:53:55.315000             🧑  作者: Mango
在终端中,我们可以使用 ANSI 转义序列来改变输出文字的颜色,这在 C++ 中也是可行的。下面我们将介绍如何在 C++ 中将输出文字的颜色更改为终端中的其他颜色。
要更改输出文字的颜色,我们需要使用 ANSI 转义序列,其语法为:
\033[<CODE>m
其中 <CODE>
是一组数字,代表需要更改的颜色或者其他的属性。下面是一些常用的颜色代码:
| 颜色 | 代码 | | --- | --- | | 黑色 | 0 | | 红色 | 1 | | 绿色 | 2 | | 黄色 | 3 | | 蓝色 | 4 | | 紫色 | 5 | | 青色 | 6 | | 白色 | 7 |
如果我们想将输出文字的颜色更改为红色,那么我们可以这样做:
std::cout << "\033[31m" << "Hello World!" << "\033[0m" << std::endl;
其中 "\033[31m"
表示将颜色更改为红色,"\033[0m"
表示重置颜色为默认值。
上面的方法虽然可行,但是每次都手写 ANSI 转义序列可能会让代码看起来很难看。我们可以创建一个简单的函数来封装 ANSI 转义序列。
enum class ColorCode {
Black = 0,
Red = 1,
Green = 2,
Yellow = 3,
Blue = 4,
Purple = 5,
Cyan = 6,
White = 7,
};
void setColorCode(ColorCode code) {
std::cout << "\033[" << static_cast<int>(code) << "m";
}
void resetColor() {
std::cout << "\033[0m";
}
现在,我们可以在程序中通过调用 setColorCode
函数来更改文字的颜色,通过调用 resetColor
函数来重置颜色为默认值。
setColorCode(ColorCode::Red);
std::cout << "Hello World!" << std::endl;
resetColor();
下面是一个完整的示例程序,将输出 Hello World!
,颜色为红色。
#include <iostream>
enum class ColorCode {
Black = 0,
Red = 1,
Green = 2,
Yellow = 3,
Blue = 4,
Purple = 5,
Cyan = 6,
White = 7,
};
void setColorCode(ColorCode code) {
std::cout << "\033[" << static_cast<int>(code) << "m";
}
void resetColor() {
std::cout << "\033[0m";
}
int main() {
setColorCode(ColorCode::Red);
std::cout << "Hello World!" << std::endl;
resetColor();
return 0;
}
输出:
<font color='red'>Hello World!</font>