99 lines
3.3 KiB
C
99 lines
3.3 KiB
C
|
/*
|
|||
|
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 <stdio.h>
|
|||
|
#include <string.h>
|
|||
|
|
|||
|
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; // 文本属性
|