/* ANSI转义序列可以用来设置终端中文本的颜色、背景色和其他属性。以下是一些常见的ANSI颜色代码及其对应的颜色值: - 前景色(文本颜色): - 黑色:`\033[30m` - 红色:`\033[31m` - 绿色:`\033[32m` - 黄色:`\033[33m` - 蓝色:`\033[34m` - 紫色:`\033[35m` - 青色:`\033[36m` - 白色:`\033[37m` - 背景色: - 黑色:`\033[40m` - 红色:`\033[41m` - 绿色:`\033[42m` - 黄色:`\033[43m` - 蓝色:`\033[44m` - 紫色:`\033[45m` - 青色:`\033[46m` - 白色:`\033[47m` 除了前景色和背景色,ANSI转义序列还可以用来设置其他文本属性,例如加粗、下划线、闪烁等。以下是一些常见的ANSI属性代码及其对应的属性: - 加粗:`\033[1m` - 下划线:`\033[4m` - 闪烁:`\033[5m` - 反显(交换前景色和背景色):`\033[7m` - 隐藏(使文本不可见):`\033[8m` 你可以将这些属性代码与前景色、背景色代码组合使用,以实现更多的效果。例如,要设置红色加粗文本,可以使用`\033[31;1m`。 除了设置文本颜色、背景色和其他属性,ANSI转义序列还可以用来控制终端的显示,例如清空屏幕、移动光标等。以下是一些常见的ANSI控制代码及其对应的操作: - 清空屏幕:`\033[2J` - 将光标移动到屏幕左上角:`\033[H` 或 `\033[1;1H` - 将光标向上移动n行:`\033[nA` - 将光标向下移动n行:`\033[nB` - 将光标向右移动n列:`\033[nC` - 将光标向左移动n列:`\033[nD` - 隐藏光标:`\033[?25l` - 显示光标:`\033[?25h` 除了常见的ANSI转义序列,还有一些特殊的控制代码,可以用来实现一些高级的终端操作。以下是一些常见的特殊控制代码及其对应的操作: - BEL(响铃):`\a` - ESC(转义字符):`\e` 或 `\033` - CSI(控制序列引导):`\033[` - OSC(操作系统命令):`\033]` 这些特殊控制代码通常用于与终端外部环境进行交互,例如向终端发送提示音、设置终端标题等。其中,OSC代码可以用来向终端发送自定义的命令,以实现一些特殊的功能。例如,可以使用OSC代码设置终端的图标、背景图片等。 需要注意的是,这些特殊控制代码可能在不同的终端程序或操作系统中有所不同。如果你想要在程序中使用这些代码,最好先查看终端程序或操作系统的文档,确保代码的兼容性和正确性。 */ #include #include typedef enum front_color_e { BLACK = 30, // 黑色 RED, // 红色 GREEN, // 绿色 YELLOW, // 黄色 BLUE, // 蓝色 PURPLE, // 紫色 CYAN, // 青色 WHITE, // 白色 } Front_Color; // 前景色 typedef enum back_color_e { BLACK_B = 40, // 黑色 RED_B, // 红色 GREEN_B, // 绿色 YELLOW_B, // 黄色 BLUE_B, // 蓝色 PURPLE_B, // 紫色 CYAN_B, // 青色 WHITE_B, // 白色 } Back_Color; // 背景色 typedef enum attr_e { BOLD = 1, // 加粗 UNDERLINE = 4, // 下划线 BLINK, // 闪烁 REVERSE = 7, // 反显 HIDE, // 隐藏 } Attr; // 文本属性