1.5 KiB
1.5 KiB
ANSI 终端控制
在 ANSI 终端下 printf 等输出可以通过特殊代码对终端进行控制,包括改变显示颜色,如:
printgf(“\033[01;40;32m HELLO \033[0m”);
这里 33[ 是转义子列,表示后面接的控制代码;01 是高亮度,不写是低亮度;40 是背景色;32m 是前景色。ANSI 终端通过不同码值区分控制功能,ANSI控制码如下:
含义 | 属性 |
---|---|
关闭所有属性 | \033[0m |
设置高亮度 | \033[1m |
下划线 | \033[4m |
闪烁 | \033[5m |
反显 | \033[7m |
消隐 | \033[8m |
设置前景色 | 30~37 |
设置背景色 | 40~47 |
光标上移 n 行 | \033[nA |
光标下移 n 行 | \033[nB |
光标右移 n 列 | \033[nC |
光标左移 n 列 | \033[nD |
设置光标位置 | \033[y;xH |
清屏 | \033[2J |
清除从光标到行尾的内容 | \033[K |
保存光标位置 | \033[s |
恢复光标位置 | \033[u |
隐藏光标 | \033[?25l |
显示光标 | \033[?25h |
颜色码及含义如下:
颜色 | 背景色代码 | 前景色代码 |
---|---|---|
Black | 40 | 30 |
Red | 41 | 31 |
Green | 42 | 32 |
Yellow | 43 | 33 |
Blue | 44 | 34 |
Purple | 45 | 35 |
Cyan | 46 | 36 |
White | 47 | 37 |
其他示例如下:
printf("\033[0;32mPASSED\033[0;0m\n");
printf("\033[0;31mFAILED\033[0;0m\n");