Linux彩色输出

时间:2021-07-20 14:09:56

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

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

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

输出结果:

Linux彩色输出

 
http://blog.csdn.net/xiangpingli/article/details/7914133