打印错误--“以色夺目”

调试程序的方法可能有很多种,每个人的习惯不同,使用的方法也不同。

比如:1 . 在怀疑的地方,加一句 printf   ; 2  利用gdb 调试   ; 3.  把错误输入到某个特定的文件  等等

但是我手头上的一个程序,在测试的时候,linux服务器的代码总是输出各种各样的信息,以至于错误的信息都被淹没在“狂沙大漠”之中,千淘万滤虽辛苦,bug 还是找不到。 于是,想了个办法,让错误信息 显示颜色,这样就容易多了。然而这真算不上什么调试方法,倒是对 va_list 类型有了新的认识,这个类型可以帮我实现很多想要做的东西。 

#include<stdio.h>
#include<stdarg.h>

static char sprintf_buf[1024];
int err_print (const char * fmt, ...)
{

 va_list args;
 int n;
 va_start(args, fmt);
 printf("\033[40;31m%s(%d),error:",__FILE__,__LINE__);
 n=vsprintf(sprintf_buf, fmt, args);
 sprintf_buf[n]='\0';
 printf(sprintf_buf);
 va_end(args);
  printf("\033[0m");
}

int main()

{
 printf("hello,world %s\n","abc");
 err_print("hello,world %s,%d,%c\n","abc",4354,'4');
 err_print("oh \n");
}

下面是参考其他文章的一些东西。
搜了一下,关于颜色设置的细节从右面的连接可找到  -> http://blog.csdn.net/s_k_yliu/article/details/6695134

字背景颜色范围: 40--49                   字颜色: 30--39
40: 黑                          30: 黑
41: 红                          31: 红
42: 绿                          32: 绿
43: 黄                          33: 黄
44: 蓝                          34: 蓝
45: 紫                          35: 紫
46: 深绿                        36: 深绿
47: 白色                        37: 白色
ANSI控制码:

QUOTE:
\033[0m   关闭所有属性  
\033[1m   设置高亮度  
\03[4m   下划线  
\033[5m   闪烁  
\033[7m   反显  
\033[8m   消隐  
\033[30m   --   \033[37m   设置前景色  
\033[40m   --   \033[47m   设置背景色  
\033[nA   光标上移n行  
\03[nB   光标下移n行  
\033[nC   光标右移n行  
\033[nD   光标左移n行  
\033[y;xH设置光标位置  
\033[2J   清屏  
\033[K   清除从光标到行尾的内容  
\033[s   保存光标位置  
\033[u   恢复光标位置  
\033[?25l   隐藏光标  
\33[?25h   显示光标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值