为了给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. #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. }
  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 显示光标

printf 字体颜色打印的更多相关文章

  1. zend studio 9.0.4 破解、汉化和字体颜色及快捷键相关设置

    转载:http://www.penglig.com/post-45.html 下载:http://www.geekso.com/component/zendstudio-downloads/ 破解:h ...

  2. [转载]Linux下终端字体颜色设置方法

    原文地址:Linux下终端字体颜色设置方法作者:router 网上类似的文章有很多,但是都是转来转去的,没有经过测试,按照很多文章的方法会造成你设置之后的终端在换行和删除输入字符时终端显示会乱七八糟, ...

  3. zend studio 破解、汉化和字体颜色及快捷键相关设置

    下载:http://www.geekso.com/component/zendstudio-downloads/ 破解:http://www.geekso.com/ZendStudio9-key/ 注 ...

  4. linux下 C编程改变输出字体颜色

    格式: echo "\033[字背景颜色;字体颜色m字符串\033[0m"例如:echo "\033[41;36m something here \033[0m" ...

  5. shell输出颜色、printf输出颜色

    1.echo开启彩色输出: -e 开启echo中的转义: \e或者\033来输出Esc颜色: 恢复默认颜色为:\e[0m; 命令格式: echo -e "\e[字背景颜色:文字颜色m字符串\ ...

  6. linux终端c语言改变输出字体颜色

    Linux下C改变输出字体颜色 例: #include int main() { printf("\033[31mThis is RED.\n\033[0m"); return 0 ...

  7. Android SearchView 自定义SearchIcon和字体颜色大小

    自定义SearchView的搜索图标和字体属性相对复杂一些,记下来. 一.自定义SearchIcon 1.API版本低于21:版本小于21时,要修改SearchIcon比较复杂,需要先获取到Searc ...

  8. Mardown字体颜色、背景色

    Markdown字体颜色.背景色 字体颜色表 Markdwon测试 **粗体文字**,或__加文字__ 加粗 Markdown测试 *斜体文字*, 或_斜体_ 斜体 Markdwon测试 列表: 背景 ...

  9. iOS 设置不同的字体颜色

    //设置不同字体颜色 -(void)fuwenbenLabel:(UILabel *)labell FontNumber:(UIFont *)font AndRange:(NSRange)range ...

随机推荐

  1. Edit Control响应全选(Ctrl+A)

    MFC中的Edit控件用于输入数据,当输入的数据为大段数字的时候,全选功能就显得非常重要了,可偏偏在MFC中Edit控件就不 支持全选.Ctrl+A不行,双击也不行. Ctrl+C和Ctrl+V都是默 ...

  2. 从业者生存质量报告之,教育行业里的IT男

    当教育遇上互联网,非常多传统教育机构都卡在了技术这道门槛上. 一位教育机构创始人曾这样感叹说:"技术须要文化基因.氛围.教育行业不知道技术这帮兄弟须要什么样的文化,什么样的工作氛围,怎么管理 ...

  3. Struts2之文件上传(单文件/多文件)

    <一>简述: Struts2的文件上传其实也是通过拦截器来实现的,只是该拦截器定义为默认拦截器了,所以不用自己去手工配置,<interceptor name="fileUp ...

  4. IOS客户端Coding项目记录(一)

    1:UITextField设置出现清除按键 self.textField.clearButtonMode = UITextFieldViewModeWhileEditing; 说明: UITextFi ...

  5. Redis集群的安装测试(伪分布模式 - 主从复制)

    想跑一下Redis集群,但是没有那么多服务器,所以使用伪分布式模式,模拟一下,记录一下安装过程. 软件: redis-3.0.3.tar.gz 集群正常工作至少需要3个主节点(本示例创建6个节点,3主 ...

  6. cat /proc/iomem

    在proc目录下有iomem和ioports文件,其主要描述了系统的io内存和io端口资源分布. 对于外设的访问,最终都是通过读写设备上的寄存器实现的,寄存器不外乎:控制寄存器.状态寄存器和数据寄存器 ...

  7. jasmine-行为驱动测试

    http://jasmine.github.io/1.3/introduction.html,先保留着,好好研究.

  8. 类声明、类作用域、前向声明、this指针、嵌套类、PIMPL 技法 等

    一.类声明 //类是一种用户自定义类型,声明形式: class 类名称 {    public:              公有成员(外部接口)    private:              私有 ...

  9. 使用命令行设置树莓派的wifi网络

    假设你没有登录到经常使用的图形用户界面.这样的方法就适合用来设置树莓派的wifi.尤其是在你没有屏幕或者有线网络,仅使用串口控制线的时候.另外,这样的方法也不须要额外的软件,全部须要的东西都已经包括进 ...

  10. spi flash偶尔出现写入错误的情况

    spi flash W25Q128会偶尔出现写入错误的情况,会发现读出的值和写入的值不一致,需加入2次读出比较判断. W25QXX_Read(&temp_date_count,0x000000 ...