c语言中的颜色设置语句详解

c语言中的颜色设置语句详解c语言中的颜色设置语句SetConsoleTextAttribute(handle,ForeColor +BackGroundColor*0x10)是什么意思?

第1个回答  2019-11-22
1.if语句的一般格式
if(表达式)
{语句组1;}
[else
{语句组2;}
]
(1)if语句中的“表达式”必须用“(”和“)”括起来。
(2)else子句(可选)是if语句的一部分,必须与if配对使用,不能单独使用。
(3)当if和else下面的语句组,仅由一条语句构成时,也可不使用复合语句形式(即去掉花括号)。
2.if语句的执行过程
(1)缺省else子句时
当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语句组1,否则直接转向执行下一条。
(2)指定else子句时
当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语句组1,然后转向下一条语句;否则,执行语句组2。如图4-1(b)所示。
3.if语句的嵌套与嵌套匹配原则
if语句允许嵌套。所谓if语句的嵌套是指,在“语句组1”或(和)“语句组2”中,又包含有if语句的情况。
if语句嵌套时,else子句与if的匹配原则:与在它上面、距它最近、且尚未匹配的if配对。
为明确匹配关系,避免匹配错误,强烈建议:将内嵌的if语句,一律用花括号括起来。
第2个回答  推荐于2017-12-16
//定义设置颜色的函数
//第一个参数是字体颜色,第二个参数是背景颜色
void setColor(unsigned short ForeColor=7,unsigned short BackGroundColor=0)//默认设为字体白色,背景黑色
{
HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);//获取当前窗口句柄
SetConsoleTextAttribute(handle,ForeColor+BackGroundColor*0x10);//设置颜色
}
对应的颜色码表:
1. 0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 10 = 淡绿色
3 = 浅绿色 11 = 淡浅绿色
4 = 红色 12 = 淡红色
5 = 紫色 13 = 淡紫色
6 = 黄色 14 = 淡黄色
7 = 白色 15 = 亮白色追问

ForeColor+BackGround* 0x10

是什么意思

追答

是文字颜色+背景颜色。

在XP系统 控制台一共有16种文字颜色,16种背景颜色,可以通过
文字颜色 + 背景颜色 * 0x10 来设置控制台的颜色。

已经定义好的颜色常量如下:
文字颜色使用如下组合:
FOREGROUND_BLUE 0x0001 // text color contains blue.
FOREGROUND_GREEN 0x0002 // text color contains green.
FOREGROUND_RED 0x0004 // text color contains red.
FOREGROUND_INTENSITY 0x0008 // text color is intensified.高亮颜色
背景颜色使用如下组合(其实就是上面值*0x10):
BACKGROUND_BLUE 0x0010 // background color contains blue.
BACKGROUND_GREEN 0x0020 // background color contains green.
BACKGROUND_RED 0x0040 // background color contains red.
BACKGROUND_INTENSITY 0x0080 // background color is intensified.

追问

就是不知道为什么在背景色中要写个*0x10

本回答被网友采纳
相似回答