C++字体颜色的改变

OI \texttt{OI} OI当中,这个东西也许不甚重要,但是如果你想要做一些有趣的小玩意儿,这个东西必不可少。

我们直接来最有用的。在 c m d \rm{cmd} cmd中,你也许知道,system("color")可以改变颜色。改变的规则是这样的:

C:\Users\Admin> color F0

这其中,F代表背景色,0代表文字颜色,对应关系如下表:

这样一来,可以直接改变整个框的背景色和文字颜色。

但是,如果我们要改变部分文字颜色呢?

请看以下代码:

void SetColorAndBackground(int ForgC, int BackC) {
	WORD wColor = ((BackC & 0x0F) << 4) + (ForgC & 0x0F);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
}

其中, ForgC代表文字颜色,BackC代表背景颜色,对应关系如上表,只不过 A \rm{A} A ~ F \rm{F} F分别代表十进制的 10 10 10~ 16 16 16

使用SetColorAndBackground改变颜色之后,输出的文字及文字的背景全部会变,直到下一次改变。

#include <bits/stdc++.h>
#include <windows.h>
using namespace std;
void SetColorAndBackground(int ForgC, int BackC) {
	WORD wColor = ((BackC & 0x0F) << 4) + (ForgC & 0x0F);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
}
int main() {
	SetColorAndBackground(15,0);
	cout<<"hello"<<endl;
	SetColorAndBackground(7,4);
	cout<<"hello"<<endl;
	return 0;
}

这就是最基本的两种改变颜色的方法。至于 A N S I \rm{ANSI} ANSI转义,这里不涉及。

去实验一下吧,说不定还会震惊你的同学们!

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值