先给出测试代码:
#include<iostream>
#include<windows.h>
using namespace std;
int main()
{
HANDLE h=GetStdHandle(STD_OUTPUT_HANDLE);
int textColor = 0xf0;
SetConsoleTextAttribute(h, textColor);
cout << "背景的颜色与相应的编码" << endl;
cout << hex << showbase; //输出数值的格式设置为16进制显示
for (int i = 0; i < 16; i++)
{
SetConsoleTextAttribute(h, textColor);
cout << textColor << "的颜色" << endl;
textColor++;
}
textColor = 0xf0;
SetConsoleTextAttribute(h, textColor);
cout << "背景的颜色与相应的编码" << endl;
textColor = 0x00;
for (int i = 0; i < 16; i++)
{
SetConsoleTextAttribute(h, textColor);
cout << textColor << "的颜色" << endl;
textColor+=16;
}
system("pause");
return 0;
}
学习笔记:
(1)SetConsoleTextAttribute函数时Windows系统中一个可以设置控制台窗口字体颜色和背景颜色的API函数,在此函数使用前,需要包含头文件:windows.h
(2) HANDLE h=GetStdHandle(STD_OUTPUT_HANDLE);此处h对应控制台窗口的句柄,GetStdHandle(nStdHandle)是返回标准的输入,输出或者错误的设备的句柄,参数nStdHandle的值可以是STD_INPUT_HANDLE(标准输入的句柄),STD_OUTPUT_HANDLE(标准输出的句柄),STD_ERROR_HANDLE(标准错误的句柄)。此处关于句柄的概念,大家可以再学习一下。