电子产业一站式赋能平台

PCB联盟网

搜索
查看: 313|回复: 0
收起左侧

实用的的C程序打印的log的方式

[复制链接]

577

主题

577

帖子

4499

积分

四级会员

Rank: 4

积分
4499
发表于 2024-7-28 12:00:00 | 显示全部楼层 |阅读模式
接着上一篇文章《由字节对齐引发的一场“血案“ 》
在平常的调试中,printf字体格式与颜色都是默认一致的。
如果可以根据log信息的重要程度,配以不同的颜色与格式,可以很方便的查找到要点。
1、printf字体显示语法说明printf(“\033[显示方式;字体颜色;背景颜色m 字符串 \033[0m” );

byuogutt3ua6403032758.png

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

    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
    ");
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条


    联系客服 关注微信 下载APP 返回顶部 返回列表