为你的控制台加点料
本文发布于1761天前,最后更新于 1725 天前,其中的信息可能已经有所发展或是发生改变。

控制台程序有一个命令,可以修改输出字体的颜色,那么C++编写控制台程序的时候,也可以实现这样的功能嘛?答案是肯定的。

我们来看一下效果图:

代码

#include <iostream>
#include <cstdlib>
#include <Windows.h>
using namespace std;
void Color(int a) {
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), a);
}//设置输出颜色
void ResetColor() {
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
}

int main()
{
	cout << "原:\t\t都是黑底白字,也太乏味了吧" << endl;
	Color(11);
	cout << "一行一颜色:\t来点有料的吧" << endl;
	Color(14);
	cout << "一行多颜色:\t好的";
	Color(13);
	cout << "哥" << endl;
	Color(BACKGROUND_INTENSITY | BACKGROUND_BLUE | FOREGROUND_INTENSITY | FOREGROUND_RED);
	cout << "带背景颜色:\t" << "TEST" << endl;
	ResetColor();
	system("pause");
	return 0;
}

这里需要解释一个函数 SetConsoleTextAttribute()

原型

BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes);

第一个参数使用GetStdHandle(STD_OUTPUT_HANDLE)函数就可获得控制台的输出句柄

第二个参数是用来设置颜色选项的,他是靠一个字节的低四位来控制前景色,高四位来控制背景色的。

什么意思呢?就是这个形参实际上可以同时设置字体颜色和背景颜色

它可以通过如下的表格来设置颜色(实际上可以用一个整数值代替)

wAttributes颜色对应的值
FOREGROUND_BLUE字体颜色:蓝1
FOREGROUND_GREEN字体颜色:绿2
FOREGROUND_RED字体颜色:红4
FOREGROUND_INTENSITY前景色高亮显示8
BACKGROUND_BLUE背景颜色:蓝16
BACKGROUND_GREEN背景颜色:绿32
BACKGROUND_RED背景颜色:红64
BACKGROUND_INTENSITY背景色高亮显示128

※摘自百度百科,词条传送门: 点我

如果要同时设置背景颜色和字体颜色,可以像下面这样用按位或运算符

BACKGROUND_INTENSITY | BACKGROUND_BLUE | FOREGROUND_INTENSITY | FOREGROUND_RED

当然如果嫌麻烦可以直接用整数值代替,因为它们实际上就是整数

整数值字体颜色表示如下:

1   深蓝色

2   深绿色

3   深青色 

4   深红色

5   深粉色

6   黄色

7   深白色

8   灰色

9   浅蓝色

10  浅绿色

11  浅青色

12  浅红色

13  浅粉色

14  浅黄色

15  浅白色

看这些数字不难发现 ,这实际上就是控制台命令color的颜色列表

这样子的话,也许有的人会说直接用system("color");不就可以实现更改颜色字体了嘛,这个我也想到过,不过经过我的试验,发现用这句话实现的更改字体颜色会默认更改掉整个控制台的颜色,这显然不是我们想要的结果

评论

  1. DonaldTrump
    Windows Chrome 70.0.3538.25
    5 年前
    2020-2-15 15:27:03

    可以

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
Source: https://github.com/zhaoolee/ChineseBQB
Source: https://github.com/zhaoolee/ChineseBQB
Source: https://github.com/zhaoolee/ChineseBQB
颜文字
Emoji
小恐龙
花!
滑稽大佬
演奏
程序员专属
上一篇
下一篇