C 语言控制台打印不同颜色字体方法

方法 1,使用 printf 格式化打印,该方法在 Visual Studio 中生效,在 Dev C++ 中未生效

示例代码:

#include <stdio.h>

#define CLOUR_ON          "\033[41;37m"
#define CLOUR_OFF         "\033[0m"

int main(void)
{
	printf(CLOUR_ON "%s" CLOUR_OFF "\n", "123, 456, 789");

	return 0;
}

输出效果:

方法二,使用 windows.h 中的 system 函数,该方法存在缺陷,只有最后一次调用该函数生效,所有输出均会变成最后一次设置的颜色

示例代码:

#include <stdio.h>
#include <Windows.h>

int main(void)
{
	system("color 0A");
	printf("Hello, world!\n");

	return 0;
}

输出效果:

可选参数如下:

system("color 0A");

显示颜色控制函数,设置字体(前景色)和背景颜色
0:背景色黑色
A:字体颜色绿色
颜色属性由两个十六进制数字指定(颜色常量)
第一个对应于背景色,第二个对应于前景色。
每个数字可以为以下任何值:

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

方法三,使用系统封装函数,推荐该方法,可选参数同上

示例代码:

#include <stdio.h>
#include <Windows.h>

static void SetColor(const unsigned short textColor);

int main(void)
{
	SetColor(4);
	printf("Hello, world!\n");
	SetColor(7);

	return 0;
}

/* 设置字体颜色,入参为 0 - 15 */
static void SetColor(const unsigned short textColor)
{
	if ((textColor >= 0) && (textColor <= 15)) {
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), textColor);
	} else {
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
	}
}

输出效果:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值