Linux彩色输出

在linux下,可以使用一些宏,加上自定义格式输出,让输出更易于调试:

排版出来可能有些乱,注意do{ }while(0);是在一行里就可以了。

[cpp] view plain copy
 
  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3.   
  4. #define DEBUG1( fmt,  arg  ... )    
  5.     do{printf("[DEBUG] " fmt ,  ##arg );  }while(0);  
  6. #define DEBUG2( fmt,  arg  ... )   
  7.     do{printf("[%s: %s: line %d]" fmt ,  
  8.         __FILE__, __FUNCTION__, __LINE__,  ##arg );  }while(0);  
  9.   
  10. #define PrintColor1( fmt,  arg  ... )     
  11.     do{printf("33[30m""[%s: %s: line %d]" fmt"33[0m" ,  
  12.         __FILE__, __FUNCTION__, __LINE__,  ##arg );  }while(0);  
  13.       
  14. #define PrintColor2( fmt,  arg  ... )     
  15.     do{printf("33[31m""[%s: %s: line %d]" fmt"33[0m" ,  
  16.         __FILE__, __FUNCTION__, __LINE__,  ##arg );  }while(0);  
  17.       
  18. #define PrintColor3( fmt,  arg  ... )     
  19.     do{printf("33[32m""[%s: %s: line %d]" fmt"33[0m" ,  
  20.         __FILE__, __FUNCTION__, __LINE__,  ##arg );  }while(0);  
  21.       
  22. #define PrintColor4( fmt,  arg  ... )     
  23.     do{printf("33[33m""[%s: %s: line %d]" fmt"33[0m" ,  
  24.         __FILE__, __FUNCTION__, __LINE__,  ##arg );  }while(0);  
  25.       
  26. #define PrintColor5( fmt,  arg  ... )     
  27.     do{printf("33[34m""[%s: %s: line %d]" fmt"33[0m" ,  
  28.         __FILE__, __FUNCTION__, __LINE__,  ##arg );  }while(0);  
  29.       
  30. #define PrintColor6( fmt,  arg  ... )     
  31.     do{printf("33[35m""[%s: %s: line %d]" fmt"33[0m" ,  
  32.         __FILE__, __FUNCTION__, __LINE__,  ##arg );  }while(0);  
  33.       
  34. #define PrintColor7( fmt,  arg  ... )      
  35.     do{printf("33[36m""[%s: %s: line %d]" fmt"33[0m" ,  
  36.         __FILE__, __FUNCTION__, __LINE__,  ##arg );  }while(0);  
  37.   
  38. int main()  
  39. {  
  40.     printf("I AM IN macro.c ");  
  41.   
  42.     DEBUG1("I AM IN macro.c ");  
  43.     DEBUG2("I AM IN macro.c ");  
  44.   
  45.     PrintColor1("I AM IN macro.c ");  
  46.     PrintColor2("I AM IN macro.c ");  
  47.     PrintColor3("I AM IN macro.c ");     
  48.     PrintColor4("I AM IN macro.c ");  
  49.     PrintColor5("I AM IN macro.c ");     
  50.     PrintColor6("I AM IN macro.c ");  
  51.     PrintColor7("I AM IN macro.c ");  
  52.   
  53.     return 0;  
  54. }  




输出结果:

 
http://blog.csdn.net/xiangpingli/article/details/7914133
原文地址:https://www.cnblogs.com/findumars/p/5619057.html