栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C和C++打印中的技巧“33[字背景颜色 字体颜色m字符串33[0m“

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C和C++打印中的技巧“�33[字背景颜色 字体颜色m字符串�33[0m“

创作人QQ:851301776,邮箱:lfr890207@163.com,欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点!

个人座右铭:
1.没有横空出世,只要厚积一定发。
2.你可以学历不高,你可以不上学,但你不能不学习

一、格式说明
格式: echo -e “33[字背景颜色;字体颜色m字符串33[0m”
字背景颜色范围:40----49 
40:黑 
41:深红 
42:绿 
43:黄色 
44:蓝色 
45:紫色 
46:深绿 
47:白色 
字颜色:30-----------39 
1:黑
30:黑 
31:红 
32:绿 
33:黄 
34:蓝色 
35:紫色 
36:深绿 
37:白色 
================ANSI控制码的说明 
33[0m 关闭所有属性 
33[1m 设置高亮度 
33[4m 下划线 
33[5m 闪烁 
33[7m 反显 
33[8m 消隐 
33[30m -- 33[37m 设置前景色 
33[40m -- 33[47m 设置背景色 
33[nA 光标上移n行 
33[nB 光标下移n行 
33[nC 光标右移n行 
33[nD 光标左移n行 
33[y;xH设置光标位置 
33[2J 清屏 
33[K 清除从光标到行尾的内容 
33[s 保存光标位置 
33[u 恢复光标位置 
33[?25l 隐藏光标 
33[?25h 显示光标

 示类:

printf("33[%d;%dm  %s:%d:%s %s i=<%d> 33[0m n" , BK_YELLOW, FC_READ, file_name, line, func, buff, i);

作用:

        代码中增加高亮部分,主要是在一些调试当中,gdb调试是已知问题去调试,但是在一些偶发的问题当中,打印增加格式,可以快速捕获到错误。

二、代码封装

#include 

//#define    PRINTF

enum background{  //背景色
    BK_BLACK = 40,   //黑色
    BK_DARK_READ,    //深红
    BK_GREEN,         //绿色
    BK_YELLOW,       //黄色
    BK_BLUE,         //蓝色
    BK_PURPLE,       //紫色
    BK_DARK_GREEN,   //深绿
    BK_WHITE         //白色
};


enum fontcolor{  //背景色
    FC_BLACK = 30,   //黑色
    FC_READ,    //深红
    FC_GREEN,         //绿色
    FC_YELLOW,       //黄色
    FC_BLUE,         //蓝色
    FC_PURPLE,       //紫色
    FC_DARK_GREEN,   //深绿
    FC_WHITE         //白色
};


void error_print(const char *buff, int i,const char *file_name, int line, const char *func)
{
#ifdef  PRINTF
    printf("33[%dm  %s:%d:%s %s i=<%d> 33[0m n" , FC_READ, file_name, line, func, buff, i);
#endif 
    return ;
}
void proc_print(int i)
{
#ifdef  PRINTF
    printf("33[%dm  i=<%d> 33[0m n" ,FC_GREEN, i);
#endif 
    return ;
}

#define     DEBUG

#ifdef      DEBUG

int main(int arg, char *argv[])
{
    
    int i = 0;
    while(++i < 20)
    {
        proc_print(i);
        if(i == 15)
        {
            error_print("error", -1, __FILE__, __LINE__, __func__);
        }

    }
    
    printf("main over!n");

    return 0;
}

#endif 





宏定义传入打印效果:

 不传入宏定义效果:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1005251.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号