接着上一篇文章《由字节对齐引发的一场“血案“ 》
在平常的调试中,printf字体格式与颜色都是默认一致的。
如果可以根据log信息的重要程度,配以不同的颜色与格式,可以很方便的查找到要点。
1、printf字体显示语法说明printf(“\033[显示方式;字体颜色;背景颜色m 字符串 \033[0m” );
byuogutt3ua6403032758.png
语法说明:
第一个**\033[**表示转义序列的开始,设置随后的字体格式
转义序列是以 ESC 开头,用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27, = 用八进制表示的 33)。显示方式:0:默认值 1:高亮 、22:非粗体、4:下划线、24:非下划线、5:闪烁、25:非闪烁、7:反显、27:非反显字体颜色30: 黑 31: 红 32: 绿 33: 黄 34: 蓝 35: 紫 36: 深绿 37: 白色背景颜色40: 黑 41: 红 42: 绿 43: 黄 44: 蓝 45: 紫 46: 深绿 47: 白色红色 'm':表示转义序列的结束结尾处的**\033[0m**是恢复默认值。其他ANSI控制码:
/033[0m 关闭所有属性
/033[1m 设置高亮度
/033[4m 下划线
/033[5m 闪烁
/033[7m 反显
/033[8m 消隐
/033[30m -- /033[37m 设置前景色
/033[40m -- /033[47m 设置背景色
/033[nA 光标上移n行
/033[nB 光标下移n行
/033[nC 光标右移n行
/033[nD 光标左移n行
/033[y;xH设置光标位置
/033[2J 清屏
/033[K 清除从光标到行尾的内容
/033[s 保存光标位置
/033[u 恢复光标位置
/033[?25l 隐藏光标
/033[?25h 显示光标
注意:
其中 显示方式;字体颜色;背景颜色 可以任意组合,";"隔开即可。
使用 ANSI 转义码来设置文本样式和颜色可能会因为不同的终端软件和操作系统而产生不同的效果。
同时,这种方式也只适用于在终端上输出,如果需要在 GUI 程序中设置文本颜色等效果,则需要使用相应的 GUI 库提供的接口。
2、举例 printf("\033[1;31mThis text is in red and bold.\033[0m
");
printf("\033[0;31mThis text is in red and not bold.\033[0m
");
其中,'1' 表示加粗或高亮,'31' 表示前景色为红色,'\033[' 是转义序列的开始,'m' 是转义序列的结束,'\033[0m' 表示将属性重置为默认值。
运行结果:
wrvtxowrwxl6403032858.png
方式 printf("\033[0;36m****一口Linux*****【0;36m】\033[0m\r
");
printf("\033[1;36m****一口Linux*****【1;36m】\033[0m\r
");
printf("\033[4;36m****一口Linux*****【4;36m】\033[0m\r
");
printf("\033[5;36m****一口Linux*****【5;36m】\033[0m\r
");
printf("\033[7;36m****一口Linux*****【7;36m】\033[0m\r
");
printf("\033[8;36m****一口Linux*****【8;36m】\033[0m\r
");
printf("\033[22;36m****一口Linux*****【22;36m】\033[0m\r
");
printf("\033[24;36m****一口Linux*****【24;36m】\033[0m\r
");
printf("\033[25;36m****一口Linux*****【25;36m】\033[0m\r
");
printf("\033[27;36m****一口Linux*****【27;36m】\033[0m\r
"); |