这个问题是别人问我怎么把控制台默认黑底白字修改掉的,我说我以前做过java语言控制台颜色控制,c的没试过。后来还是留意了一下,发现可以改变控制台显示颜色。
如下实例:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19#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对应的值如下所示:
复制代码
1
2
3
4
5
6
7
8#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++改变控制台显示颜色内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复