# 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");