解码C语言控制台颜色输出
基本原理
控制台颜色输出使用ANSI转义序列,格式为:\033[属性代码m
常用颜色代码
字体颜色
#define RED "\033[31m"// 红色
#define GREEN "\033[32m"// 绿色
#define YELLOW "\033[33m"// 黄色
#define BLUE "\033[34m"// 蓝色
#define MAGENTA "\033[35m"// 洋红色
#define CYAN "\033[36m"// 青色
#define WHITE "\033[37m"// 白色
背景颜色
#define BG_RED "\033[41m"// 红色背景
#define BG_GREEN "\033[42m"// 绿色背景
#define BG_YELLOW "\033[43m"// 黄色背景
#define BG_BLUE "\033[44m"// 蓝色背景
#define BG_MAGENTA "\033[45m"// 洋红色背景
#define BG_CYAN "\033[46m"// 青色背景
#define BG_WHITE "\033[47m"// 白色背景
重置颜色
#define RESET "\033[0m"// 重置所有属性
使用注意事项
必须重置颜色:设置颜色后,必须使用RESET恢复默认设置,否则后续输出都会保持该颜色
组合使用:可以同时设置字体颜色和背景颜色
//用空格分隔
printf(RED BG_WHITE "红字白底" RESET "\n");
兼容性:ANSI转义序列在大多数Unix/Linux终端和Windows 10+的终端中支持,但旧版Windows cmd可能不支持
格式顺序:多个属性可以组合使用
//用分号分隔
printf("\033[31;47m红字白底\033[0m\n");// 31:红色, 47:白色背景
其他常用属性代码
#define BOLD "\033[1m"// 粗体
#define UNDERLINE "\033[4m"// 下划线
#define BLINK "\033[5m"// 闪烁
#define REVERSE "\033[7m"// 反显(前景背景互换)
示例代码结构
#include <stdio.h>// 定义颜色代码
#define RESET "\033[0m"// 字体颜色定义...// 背景颜色定义...
int main() {
// 使用颜色输出
printf(颜色代码 "文本内容" RESET);
return 0;
}

浙公网安备 33010602011771号