c++改变控制台显示颜色
Posted luffy5459
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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++改变控制台显示颜色的主要内容,如果未能解决你的问题,请参考以下文章