创作人QQ:851301776,邮箱:[email protected],欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点!
个人座右铭:
1.没有横空出世,只要厚积一定发。
2.你可以学历不高,你可以不上学,但你不能不学习
一、格式说明
格式: echo -e “\033[字背景颜色;字体颜色m字符串\033[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("\033[%d;%dm %s:%d:%s %s i=<%d> \033[0m \n" , BK_YELLOW, FC_READ, file_name, line, func, buff, i);
作用:
代码中增加高亮部分,主要是在一些调试当中,gdb调试是已知问题去调试,但是在一些偶发的问题当中,打印增加格式,可以快速捕获到错误。
二、代码封装
#include <stdio.h>
//#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("\033[%dm %s:%d:%s %s i=<%d> \033[0m \n" , FC_READ, file_name, line, func, buff, i);
#endif
return ;
}
void proc_print(int i)
{
#ifdef PRINTF
printf("\033[%dm i=<%d> \033[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
宏定义传入打印效果:
不传入宏定义效果: