Linux彩色输出
2016-06-27 04:47
302 查看
在linux下,可以使用一些宏,加上自定义格式输出,让输出更易于调试:
排版出来可能有些乱,注意do{ }while(0);是在一行里就可以了。
[cpp] view plain copy
#include <stdio.h>
#include <stdlib.h>
#define DEBUG1( fmt, arg ... ) \
do{printf("[DEBUG] " fmt , ##arg ); }while(0);
#define DEBUG2( fmt, arg ... ) \
do{printf("[%s: %s: line %d]" fmt ,\
__FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
#define PrintColor1( fmt, arg ... ) \
do{printf("\033[30m""[%s: %s: line %d]" fmt"\033[0m" ,\
__FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
#define PrintColor2( fmt, arg ... ) \
do{printf("\033[31m""[%s: %s: line %d]" fmt"\033[0m" ,\
__FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
#define PrintColor3( fmt, arg ... ) \
do{printf("\033[32m""[%s: %s: line %d]" fmt"\033[0m" ,\
__FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
#define PrintColor4( fmt, arg ... ) \
do{printf("\033[33m""[%s: %s: line %d]" fmt"\033[0m" ,\
__FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
#define PrintColor5( fmt, arg ... ) \
do{printf("\033[34m""[%s: %s: line %d]" fmt"\033[0m" ,\
__FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
#define PrintColor6( fmt, arg ... ) \
do{printf("\033[35m""[%s: %s: line %d]" fmt"\033[0m" ,\
__FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
#define PrintColor7( fmt, arg ... ) \
do{printf("\033[36m""[%s: %s: line %d]" fmt"\033[0m" ,\
__FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
int main()
{
printf("I AM IN macro.c\n");
DEBUG1("I AM IN macro.c\n");
DEBUG2("I AM IN macro.c\n");
PrintColor1("I AM IN macro.c\n");
PrintColor2("I AM IN macro.c\n");
PrintColor3("I AM IN macro.c\n");
PrintColor4("I AM IN macro.c\n");
PrintColor5("I AM IN macro.c\n");
PrintColor6("I AM IN macro.c\n");
PrintColor7("I AM IN macro.c\n");
return 0;
}
输出结果:
![](http://my.csdn.net/uploads/201208/27/1346080609_5571.png)
http://blog.csdn.net/xiangpingli/article/details/7914133
排版出来可能有些乱,注意do{ }while(0);是在一行里就可以了。
[cpp] view plain copy
#include <stdio.h>
#include <stdlib.h>
#define DEBUG1( fmt, arg ... ) \
do{printf("[DEBUG] " fmt , ##arg ); }while(0);
#define DEBUG2( fmt, arg ... ) \
do{printf("[%s: %s: line %d]" fmt ,\
__FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
#define PrintColor1( fmt, arg ... ) \
do{printf("\033[30m""[%s: %s: line %d]" fmt"\033[0m" ,\
__FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
#define PrintColor2( fmt, arg ... ) \
do{printf("\033[31m""[%s: %s: line %d]" fmt"\033[0m" ,\
__FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
#define PrintColor3( fmt, arg ... ) \
do{printf("\033[32m""[%s: %s: line %d]" fmt"\033[0m" ,\
__FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
#define PrintColor4( fmt, arg ... ) \
do{printf("\033[33m""[%s: %s: line %d]" fmt"\033[0m" ,\
__FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
#define PrintColor5( fmt, arg ... ) \
do{printf("\033[34m""[%s: %s: line %d]" fmt"\033[0m" ,\
__FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
#define PrintColor6( fmt, arg ... ) \
do{printf("\033[35m""[%s: %s: line %d]" fmt"\033[0m" ,\
__FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
#define PrintColor7( fmt, arg ... ) \
do{printf("\033[36m""[%s: %s: line %d]" fmt"\033[0m" ,\
__FILE__, __FUNCTION__, __LINE__, ##arg ); }while(0);
int main()
{
printf("I AM IN macro.c\n");
DEBUG1("I AM IN macro.c\n");
DEBUG2("I AM IN macro.c\n");
PrintColor1("I AM IN macro.c\n");
PrintColor2("I AM IN macro.c\n");
PrintColor3("I AM IN macro.c\n");
PrintColor4("I AM IN macro.c\n");
PrintColor5("I AM IN macro.c\n");
PrintColor6("I AM IN macro.c\n");
PrintColor7("I AM IN macro.c\n");
return 0;
}
输出结果:
![](http://my.csdn.net/uploads/201208/27/1346080609_5571.png)
http://blog.csdn.net/xiangpingli/article/details/7914133
相关文章推荐
- Linux常用命令-curl
- Writing a Linux device driver module for kernels 2.6 or later with udev
- 成为 Linux 内核高手的四个方法
- Linux下Nagios的安装与配置
- CentOS 6.3下Samba服务器的安装与配置
- Debian系列Linux/Ubuntu 安装软件
- Linux NFS服务器的安装与配置
- linux 进程内存解析
- linux 和 android 源码的 cross reference (即网页浏览代码的引用)
- 详解ASP.NET Core 网站发布到Linux服务器
- linux服务器搭建在线预览环境
- Linux 系统 乌班图常用命令
- CentOS系统端口占用解决
- CentOS6.5安装mysql5.6-GA版
- 关于find_busiest_group函数提现出的Linux性能问题
- pgoneproxy在linux 2.6.32-279 与 2.6.32-573版本上面运行的差异
- Linux学习之软件安装(二)-常用软件安装列表
- Ubuntu16.04/LinuxMint18安装openjdk-7-jdk
- CentOS开启FTP及配置用户
- Linux常用命令