📜  如何在 C++ 中添加彩色文本(1)

📅  最后修改于: 2023-12-03 14:52:15.505000             🧑  作者: Mango

如何在 C++ 中添加彩色文本

在 C++ 中,如果想要在终端输出彩色文本,需要使用特殊的控制字符来实现。这些控制字符能够改变终端文本的颜色、背景色、加粗、斜体等效果。

控制字符介绍

以下是常用的控制字符和对应的效果:

| 控制字符 | 效果 | | ------------------ | ------------ | | \33[0m | 关闭所有效果 | | \33[1m | 加粗 | | \33[2m | 暗淡 | | \33[3m | 斜体 | | \33[4m | 下划线 | | \33[5m | 闪烁 | | \33[7m | 反显 | | \33[8m | 不可见 | | \33[30m ~ \33[37m | 改变前景色 | | \33[40m ~ \33[47m | 改变背景色 |

其中,\33 是 ESC 的 ASCII 码,表示第一个字符为 ESC。

实现步骤

为了方便,我们可以封装一个函数来实现彩色输出。以下是一个简单的实现:

void setColor(int color, bool bold = false) {
    std::cout << "\33[";
    if (bold) std::cout << "1;";
    std::cout << color << "m";
}

该函数接受两个参数:color 表示前景色的编号,bold 表示是否加粗。默认情况下,bold 为 false,即不加粗。

以下是一个使用示例:

int main() {
    setColor(31, true); // 红色 + 加粗
    std::cout << "Hello world!" << std::endl;
    setColor(0); // 关闭所有效果
    return 0;
}

输出效果如下:

示例输出效果

注意事项
  • 不是所有终端都支持彩色输出,可能会出现乱码或者不显示的情况。
  • 控制字符只对后面的文本生效,如果想要改变整行或整屏的颜色,需要在每个需要改变颜色的字符前面添加控制字符。
  • 控制字符需要与普通文本分开输出,否则会出现不可预期的效果。

以上就是在 C++ 中添加彩色文本的介绍,希望对你有所帮助。