77 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ANSI转义字符归纳表
## 在代码中检测是否支持ANSI C
`#if __STDC__ == 1`
---
## **1. 文本样式控制**
| 转义码 | 效果 | 说明 |
|---------------|--------------------|--------------------------|
| `\033[0m` | 重置所有样式 | 关闭所有颜色和特效 |
| `\033[1m` | 加粗/高亮 | |
| `\033[2m` | 暗淡(弱化) | 部分终端不支持 |
| `\033[3m` | 斜体 | 部分终端不支持 |
| `\033[4m` | 下划线 | |
| `\033[5m` | 闪烁(慢) | 部分终端不支持 |
| `\033[7m` | 反色(前景/背景互换)| |
| `\033[8m` | 隐藏(不可见) | |
| `\033[9m` | 删除线 | 部分终端不支持 |
---
## **2. 前景色(文本颜色)**
| 转义码 | 颜色 | 转义码(亮色) |
|---------------|-----------|----------------|
| `\033[30m` | 黑色 | `\033[90m` |
| `\033[31m` | 红色 | `\033[91m` |
| `\033[32m` | 绿色 | `\033[92m` |
| `\033[33m` | 黄色 | `\033[93m` |
| `\033[34m` | 蓝色 | `\033[94m` |
| `\033[35m` | 品红 | `\033[95m` |
| `\033[36m` | 青色 | `\033[96m` |
| `\033[37m` | 白色 | `\033[97m` |
---
## **3. 背景色**
| 转义码 | 颜色 | 转义码(亮色) |
|---------------|-----------|----------------|
| `\033[40m` | 黑色 | `\033[100m` |
| `\033[41m` | 红色 | `\033[101m` |
| `\033[42m` | 绿色 | `\033[102m` |
| `\033[43m` | 黄色 | `\033[103m` |
| `\033[44m` | 蓝色 | `\033[104m` |
| `\033[45m` | 品红 | `\033[105m` |
| `\033[46m` | 青色 | `\033[106m` |
| `\033[47m` | 白色 | `\033[107m` |
---
## **4. 光标控制**
| 转义码 | 作用 |
|-------------------------|--------------------------|
| `\033[<n>A` | 光标上移 `<n>` 行 |
| `\033[<n>B` | 光标下移 `<n>` 行 |
| `\033[<n>C` | 光标右移 `<n>` 列 |
| `\033[<n>D` | 光标左移 `<n>` 列 |
| `\033[<y>;<x>H` | 光标移动到第 `<y>` 行、第 `<x>` 列 |
| `\033[2J` | 清屏(整个屏幕) |
| `\033[K` | 清除从光标到行尾的内容 |
| `\033[2K` | 清除全行的内容 |
| `\033[s` | 保存光标位置 |
| `\033[u` | 恢复光标位置 |
---
## **5. RGB 颜色(部分终端支持)**
如果终端支持 **24-bit 真彩色**,可以使用:
```c
printf("\033[38;2;<r>;<g>;<b>m"); // 设置前景色RGB
printf("\033[48;2;<r>;<g>;<b>m"); // 设置背景色RGB
```
**示例:**
```c
printf("\033[38;2;255;100;0m这是橙红色文字\033[0m\n");
```