C语言中控制printf的打印颜色实例及vt100的控制符文档

时间:2021-06-18 00:24:50

转自:http://blog.csdn.net/evimacsl/archive/2010/01/18/5206836.aspx

 

为了给printf着色方便, 我们可以定义一些宏:

  1. #define NONE          "/033[m"   
  2. #define RED           "/033[0;32;31m"   
  3. #define LIGHT_RED     "/033[1;31m"   
  4. #define GREEN         "/033[0;32;32m"   
  5. #define LIGHT_GREEN   "/033[1;32m"   
  6. #define BLUE          "/033[0;32;34m"   
  7. #define LIGHT_BLUE    "/033[1;34m"   
  8. #define DARY_GRAY     "/033[1;30m"   
  9. #define CYAN          "/033[0;36m"   
  10. #define LIGHT_CYAN    "/033[1;36m"   
  11. #define PURPLE        "/033[0;35m"   
  12. #define LIGHT_PURPLE "/033[1;35m"   
  13. #define BROWN         "/033[0;33m"   
  14. #define YELLOW        "/033[1;33m"   
  15. #define LIGHT_GRAY    "/033[0;37m"   
  16. #define WHITE         "/033[1;37m"   

  随后,我们就可以方便的使用了,例如:

  1. #include <stdio.h>   
  2. #define NONE          "/033[m"   
  3. #define RED           "/033[0;32;31m"   
  4. #define LIGHT_RED     "/033[1;31m"   
  5. #define GREEN         "/033[0;32;32m"   
  6. #define LIGHT_GREEN   "/033[1;32m"   
  7. #define BLUE          "/033[0;32;34m"   
  8. #define LIGHT_BLUE    "/033[1;34m"   
  9. #define DARY_GRAY     "/033[1;30m"   
  10. #define CYAN          "/033[0;36m"   
  11. #define LIGHT_CYAN    "/033[1;36m"   
  12. #define PURPLE        "/033[0;35m"   
  13. #define LIGHT_PURPLE "/033[1;35m"   
  14. #define BROWN         "/033[0;33m"   
  15. #define YELLOW        "/033[1;33m"   
  16. #define LIGHT_GRAY    "/033[0;37m"   
  17. #define WHITE         "/033[1;37m"   
  18. int  main()  
  19. {  
  20.     printf("/033[1m/033[40;34mhello,world/033[0m/n" );  
  21.     printf(RED"RED FONT" BLUE "%s/n" NONE, "BLUE FONT" );  
  22.     return  0;  
  23. }  

  其中:

     /033[1m 设置高亮度
     /033[字背景颜色;字体颜色m字符串/033[0m

附录:vt100的控制符文档

vt100可以实现终端上显示颜色,或者移动光标什么的,下面是网上流传的文档。

=============颜色控制====================
格式: echo "33[字背景颜色;字体颜色m字符串33[0m"

例如:
echo "33[41;36m something here 33[0m"

其中41的位置代表底色, 36的位置是代表字的颜色

那些ascii code 是对颜色调用的始末.
33[ ; m …… 33[0m

字背景颜色范围:40----49
40:黑
41:深红
42:绿
43:黄色
44:蓝色
45:紫色
46:深绿
47:白色

字颜色:30-----------39
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 显示光标

  注:本文作者Evimacs.L <evimacsl@gmail.com >,Blog http://blog.csdn.net/evimacsl ,转载请注明出处!