控制台程序打印不同颜色的字体

最近在做一个类ftp的程序,我写界面实在是太垃圾了,所以选择用控制台程序实现。

调试服务端和客户端时,总是会出现各种问题,于是只好将可能出现错误的地方打印出来。随着日志打印的越来越频繁,Console窗口显示太多的内容,都是黑底白字,想找到错误的日志真是一件费力的事情。于是我就想,是不是可以在打印日志的时候,将错误提示的日志使用红色区分,这样就不用在茫茫的日志中苦苦找寻自己想要的那一条。

还好,Windows提供了API对Console的打印内容设置不同的字体颜色和背景颜色:

API:BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes);

其中,hConsoleOutput可以使用GetStdHandle(STD_OUTPUT_HANDLE)获取。对于wAttributes,Windows提供了设置项FOREGROUND_BLUE(0x1)、FOREGROUND_GREEN(0x2)、FOREGROUND_RED(0x4)、FOREGROUND_INTENSITY(0x8),从名字可以知晓,分别是蓝、绿、红和增强。正当我欣喜的时候,我发现这里面没有白色、也没有其他的颜色,仅仅3种颜色+一个增强。而Console是黑色背景,对白色字体有强烈需求,于是我百度查了一下,发现有些人直接将0 1 2 3...7作为实参进行设置。我有点蒙了,为什么可以呀。后来我想起了物理中说的三原色(红、绿、蓝),可以合成彩虹,这才豁然开朗。

具体的颜色可以自己设置的调一下,我这里主要记录一下常用的颜色(所有的颜色并上FOREGROUND_INTENSITY都可以增强):

0                                                                                                                                  黑色(完全没有,不就是黑色吗)

1      FOREGROUND_BLUE                                                                                       蓝色

2     FOREGROUND_GREEN                                                                                    绿色

4     FOREGROUND_RED                                                                                         红色

7     FOREGROUND_BLUE |   FOREGROUND_GREEN | FOREGROUND_RED   白色(三原色合在一起就是白色)

 

实例演示截图:

                                                                 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值