首页 > 解决方案 > C++ 显示字符与 Ansi 颜色代码

问题描述

我可以对这样的字符串使用 ANSI 颜色代码:

cout << "\033[35m" << "hello" << "\033[0m" << endl;

但不适用于我指定为二维字符数组的一部分的单个字符。我的目标是显示:

myArr[6][5] = 'H'

在特定的颜色。我努力了:

myArr[6][5] = "\033[35mH\033[0m"

并且

myArr[6][5] = '\033[35mH\033[0m'

第一个给出错误,因为我的数组是字符数据类型,所以我不能将它分配给字符串元素。第二个不起作用,因为 ' ' 用于单个字符,而 ANSI 代码有多个字符。有什么建议么?这需要顺便转移到 Linux 上(在我的 Mac 上的终端上)。

标签: c++linuxunixgraphicscommand

解决方案


为什么不使用对象或结构而不是简单字符

enum class SGRColor :int{BLACK=0,RED=1,GREEN=2,YELLOW=3,BLUE=4,PINK=5,CYAN=6,GREY=7};
class ColorChar 
{
public:
...
string getANSIColor(void)
{
...
}
private:
char _value;
SGRColor _color;
}



array<array<ColorChar ,5> , 6> myArr;

或重载 << 运算符


推荐阅读