我是靠谱客的博主 忐忑大船,最近开发中收集的这篇文章主要介绍c++改变控制台显示颜色,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

    这个问题是别人问我怎么把控制台默认黑底白字修改掉的,我说我以前做过java语言控制台颜色控制,c的没试过。后来还是留意了一下,发现可以改变控制台显示颜色。

    如下实例:

#include "pch.h"
#include <iostream>
#include <Windows.h>

using namespace std;

bool setConsoleColor(WORD wAttributes) {
	HANDLE wHandle = GetStdHandle(STD_OUTPUT_HANDLE);
	return SetConsoleTextAttribute(wHandle, wAttributes);
}

int main() {
	setConsoleColor(FOREGROUND_GREEN | FOREGROUND_INTENSITY | FOREGROUND_BLUE);
	cout << "hello,world." << endl;
	setConsoleColor(FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE);
	cout << "123" << endl;
	return 0;
}

    运行效果:

    c++提供了获取窗口句柄的函数GetStdHandle(STD_OUTPUT_HANDLE),可以获取控制台输出的对象,接着可以调用SetConsoleTextAttribute()设置颜色和背景色。

    FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE这个值可以让控制台颜色回到默认设置,所以示例最后打印的"123"是白色的。

    这里FOREGROUND_属性表示前景色,肯定也有BACKGROUND_属性,表示背景色。

    FOREGROUND,BACKGROUND对应的值如下所示:

#define FOREGROUND_BLUE      0x0001 // text color contains blue.
#define FOREGROUND_GREEN     0x0002 // text color contains green.
#define FOREGROUND_RED       0x0004 // text color contains red.
#define FOREGROUND_INTENSITY 0x0008 // text color is intensified.
#define BACKGROUND_BLUE      0x0010 // background color contains blue.
#define BACKGROUND_GREEN     0x0020 // background color contains green.
#define BACKGROUND_RED       0x0040 // background color contains red.
#define BACKGROUND_INTENSITY 0x0080 // background color is intensified.

    从上面的实例代码中可以发现,这些颜色可以组合使用。 这个WORD类型的wAttributes中的低四位表示前景色,高四位表示背景色。

最后

以上就是忐忑大船为你收集整理的c++改变控制台显示颜色的全部内容,希望文章能够帮你解决c++改变控制台显示颜色所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部