c++控制台 设置字体颜色

一种方法是直接在程序上方栏杆点右键,然后属性处设置

优点是设置后一劳永逸,不需要像后面方法那样要自己把设置写入程序代码内

缺点是,一旦设置了就不能再改变了,程序从头到尾都是那种设置。

 

第二种方法是使用windows API函数里的system()

color /? 里面写的很清楚

颜色属性由两个十六进制数字指定 -- 第一个为背景,第二个则为前景。每个数字可以为以下任何值之一:

0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 湖蓝色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色

如调用 system("color 02") 则颜色会变为,黑底蓝字
优点是调用方便,只需要加一个函数即可
缺点是设置的是全局变量,也就是设置后,前面显示的文字以及以后出现的都会变为这个设置


第三种方法是SetConsoleTextAttribute()包含在头文件 windows.h
函数原型BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes);

参数

consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE);
GetStdHandle(nStdHandle)是返回标准的输入、输出或错误的设备的句柄,也就是获得输入、输出/错误的屏幕缓冲区的句柄。
其参数nStdHandle的值为下面几种类型的一种:
含义
STD_INPUT_HANDLE标准输入的句柄
STD_OUTPUT_HANDLE标准输出的句柄
STD_ERROR_HANDLE标准错误的句柄
wAttributes是用来设置颜色的参数:
wAttributes颜色对应的值
FOREGROUND_BLUE字体颜色:蓝1
FOREGROUND_GREEN字体颜色:绿2
FOREGROUND_RED字体颜色:红4
FOREGROUND_INTENSITY前景色高亮显示8
BACKGROUND_BLUE背景颜色:蓝16
BACKGROUND_GREEN背景颜色:绿32
BACKGROUND_RED
背景颜色:红
64
BACKGROUND_INTENSITY背景色高亮显示128
也就是说SetConsoleTextAttribute函数是靠一个字节的低四来控制前景色,高四位来控制背景色。
 
我仔细说明一下SetConsoleTextAttribute的第二个参数
  它是一个WORD型的变量,其实就是一个unsigned shot型
  范围为0~65535
  当值超过它时自己会出警告
十六位对应的输出总结如下:
  0透明1前景蓝2前景绿3前景红4前景高亮5背景蓝6背景绿7背景红8背景高亮
  9透明10透明11上划线12左划线13右划线14右划线15透明16透明

一些混搭颜色:
黑:0
白:red+green+blue
黄:red+green
青:green+blue
紫:red+blue

转载于:https://www.cnblogs.com/someblue/p/3688603.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值