c++ - 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 上的终端上)。
解决方案
为什么不使用对象或结构而不是简单字符
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;
或重载 << 运算符
推荐阅读
- c - 我对 scanf 有问题,并给输入一个带有 for 循环的 char 数组?
- python - 使用 Bs4 从 HTML 复制元素以作为单独的索引列出
- python-3.x - 如何计算每组中的记录数并将它们添加到主数据集中?
- windows - 分析这个 Procdump .dmp 文件 - 来自 Apache httpd.exe
- python - 矩形外接矩形 - 内部矩形的大小
- java - 如何在@WebMvcTest 测试中忽略@EnableWebSecurity 注释类
- java - 如何使用 Stream 根据条件删除第一个元素
- python - 使用 tf.data.Dataset 的 Tensorflow 性能缓慢
- python - appengine 使用数据存储设置本地主机进行测试
- triggers - 在这个问题上无法进行重新育儿。如果从客户中删除机会,则应将其从客户查找字段中删除