关于C语言颜色改变的方法
学了一段时间的C语言,未免也会觉得黑底白字有些许单调,所以有时会想到去改变字体和背景的颜色,在各方查阅学习之后对这些也有了初步了解,在这里和大家分享一下。
首先,我们要知道,在C语言中,颜色属性的表示方法
颜色属性由两个十六进制数字指定 – 前者为背景,而后者则为
前景。每个数字可以为以下任何值之一:
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 浅绿色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6= 黄色 E = 淡黄色
7 = 白色 F = 亮白色
通常我们初学者改变颜色都是使用**system()**函数,下面是简单的使用例子:
如图前者8代表灰色背景,后者C则代表淡红色前景
当然不止于此,我们除了可以使用system()函数之外,还可以自定义函数,通过定义的参数改变颜色,而这种方式相对于system(“color xx”);的好处在于可以使多处局部变色,而不是像上图只能改变整个画面的颜色
此处是看过一个CSDN博客的截取片段:这是原博客地址link.
#include <stdio.h>
#include <windows.h>
void color(short x) //自定义函根据参数改变颜色
{
if(x>=0 && x<=15)//参数在0-15的范围颜色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x); //只有一个参数,改变字体颜色
else//默认的颜色白色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
}
int main()
{
int i;
for(i = 0;i < 1000;i ++){
//color(16);printf(" ");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), i);
printf("%-3d", i);
color(16);printf(" ");
if(i % 16 == 0) printf("\n");
}
color(16);
return 0;
}
运行后截图如下:
如图通过自定义函数可以实现局部变色