关于C语言颜色改变方法

关于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;
    
}

运行后截图如下:在这里插入图片描述
如图通过自定义函数可以实现局部变色

  • 21
    点赞
  • 126
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
C语言中,可以使用控制台窗口的API函数来更改字体颜色。具体实现步骤如下: 1. 引入头文件:`#include <windows.h>` 2. 定义控制台窗口句柄:`HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);` 3. 使用`SetConsoleTextAttribute()`函数设置控制台窗口中的字体颜色和背景颜色。该函数的原型如下: `BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes);` 其中,`hConsoleOutput`参数为控制台窗口句柄,`wAttributes`参数为字体颜色和背景颜色的组合值。可以使用以下宏定义来定义颜色: - `FOREGROUND_BLUE`:蓝色 - `FOREGROUND_GREEN`:绿色 - `FOREGROUND_RED`:红色 - `FOREGROUND_INTENSITY`:高亮(加粗) - `BACKGROUND_BLUE`:背景色为蓝色 - `BACKGROUND_GREEN`:背景色为绿色 - `BACKGROUND_RED`:背景色为红色 - `BACKGROUND_INTENSITY`:背景色高亮 颜色的组合方式为将字体颜色和背景颜色的宏定义值使用按位或运算符(|)组合起来。例如,设置白色字体和蓝色背景的代码如下: `SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | BACKGROUND_INTENSITY);` 下面是一个简单的例子,可以尝试运行一下: ``` #include <windows.h> #include <stdio.h> int main() { HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | BACKGROUND_INTENSITY); printf("Hello, World!\n"); SetConsoleTextAttribute(hConsole, FOREGROUND_RED | BACKGROUND_GREEN | BACKGROUND_INTENSITY); printf("This is a test message.\n"); return 0; } ``` 运行结果为: ![c_console_color.png](https://cdn.jsdelivr.net/gh/Yousazoe/picgo-repo/img/c_console_color.png)

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值