使用SetConsoleTextAttribute()函数,具体颜色代码见下面代码,以及输出的颜色见下图。
// http://www.cplusplus.com/forum/beginner/54360/
#include <stdio.h>
#include "conio.h"
#include <iostream>
#include <windows.h>
using namespace std;
/*
The different color codes are
0 BLACK
1 BLUE
2 GREEN
3 CYAN
4 RED
5 MAGENTA
6 BROWN
7 LIGHTGRAY
8 DARKGRAY
9 LIGHTBLUE
10 LIGHTGREEN
11 LIGHTCYAN
12 LIGHTRED
13 LIGHTMAGENTA
14 YELLOW
15 WHITE
*/
enum COLORS
{
TEXT_BLACK=0x00, TEXT_BLUE=0x01, TEXT_GREEN=0x02, TEXT_CYAN=0x03,
TEXT_RED=0x04, TEXT_MAGENTA=0x05, TEXT_BROWN=0x06, TEXT_LIGHTGRAY=0x07,
TEXT_DARKGRAY=0x08, TEXT_LIGHTBLUE=0x09, TEXT_LIGHTGREEN=0x0A, TEXT_LIGHTCYAN=0x0B,
TEXT_LIGHTRED=0x0C, TEXT_LIGHTMAGENTA=0x0D, TEXT_YELLOW=0x0E, TEXT_WHITE=0x0F,
BACK_BLACK=0x00, BACK_BLUE=0x10, BACK_GREEN=0x20, BACK_CYAN=0x30,
BACK_RED=0x40, BACK_MAGENTA=0x50, BACK_BROWN=0x60, BACK_LIGHTGRAY=0x70,
BACK_DARKGRAY=0x80, BACK_LIGHTBLUE=0x90, BACK_LIGHTGREEN=0xA0, BACK_LIGHTCYAN=0xB0,
BACK_LIGHTRED=0xC0, BACK_LIGHTMAGENTA=0xD0, BACK_YELLOW=0xE0, BACK_WHITE=0xF0,
};
int main ( void )
{
HANDLE h = GetStdHandle ( STD_OUTPUT_HANDLE );
WORD wOldColorAttrs;
CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
/*
* First save the current color information
*/
GetConsoleScreenBufferInfo(h, &csbiInfo);
wOldColorAttrs = csbiInfo.wAttributes;
printf("consle color: http://www.cplusplus.com/forum/beginner/54360/ \n\n");
/*
* Set the new color information
*/
SetConsoleTextAttribute ( h, TEXT_BLACK | BACK_WHITE);
printf ( "TEXT_BLACK: 0x%X\n", TEXT_BLACK | BACK_WHITE);
SetConsoleTextAttribute ( h, TEXT_BLUE);
printf ( "TEXT_BLUE: 0x%X\n", TEXT_BLUE);
SetConsoleTextAttribute ( h, TEXT_GREEN);
printf ( "TEXT_GREEN: 0x%X\n", TEXT_GREEN);
SetConsoleTextAttribute ( h, TEXT_CYAN);
printf ( "TEXT_CYAN: 0x%X\n", TEXT_CYAN);
SetConsoleTextAttribute ( h, TEXT_RED);
printf ( "TEXT_RED: 0x%X\n", TEXT_RED);
SetConsoleTextAttribute ( h, TEXT_MAGENTA);
printf ( "TEXT_MAGENTA: 0x%X\n", TEXT_MAGENTA);
SetConsoleTextAttribute ( h, TEXT_BROWN);
printf ( "TEXT_BROWN: 0x%X\n", TEXT_BROWN);
SetConsoleTextAttribute ( h, TEXT_LIGHTGRAY);
printf ( "TEXT_LIGHTGRAY: 0x%X\n", TEXT_LIGHTGRAY);
SetConsoleTextAttribute ( h, TEXT_DARKGRAY);
printf ( "TEXT_DARKGRAY: 0x%X\n", TEXT_DARKGRAY);
SetConsoleTextAttribute ( h, TEXT_LIGHTBLUE);
printf ( "TEXT_LIGHTBLUE: 0x%X\n", TEXT_LIGHTBLUE);
SetConsoleTextAttribute ( h, TEXT_LIGHTGREEN);
printf ( "TEXT_LIGHTGREEN: 0x%X\n", TEXT_LIGHTGREEN);
SetConsoleTextAttribute ( h, TEXT_LIGHTCYAN);
printf ( "TEXT_LIGHTCYAN: 0x%X\n", TEXT_LIGHTCYAN);
SetConsoleTextAttribute ( h, TEXT_LIGHTRED);
printf ( "TEXT_LIGHTRED: 0x%X\n", TEXT_LIGHTRED);
SetConsoleTextAttribute ( h, TEXT_LIGHTMAGENTA);
printf ( "TEXT_LIGHTMAGENTA: 0x%X\n", TEXT_LIGHTMAGENTA);
SetConsoleTextAttribute ( h, TEXT_YELLOW);
printf ( "TEXT_YELLOW: 0x%X\n", TEXT_YELLOW);
SetConsoleTextAttribute ( h, TEXT_WHITE);
printf ( "TEXT_WHITE: 0x%X\n", TEXT_WHITE);
std::cout << std::endl;
SetConsoleTextAttribute ( h, BACK_BLACK | TEXT_WHITE);
printf ( "BACK_BLACK: 0x%X\n", BACK_BLACK | TEXT_WHITE);
SetConsoleTextAttribute ( h, BACK_BLUE);
printf ( "BACK_BLUE: 0x%X\n", BACK_BLUE);
SetConsoleTextAttribute ( h, BACK_GREEN);
printf ( "BACK_GREEN: 0x%X\n", BACK_GREEN);
SetConsoleTextAttribute ( h, BACK_CYAN);
printf ( "BACK_CYAN: 0x%X\n", BACK_CYAN);
SetConsoleTextAttribute ( h, BACK_RED);
printf ( "BACK_RED: 0x%X\n", BACK_RED);
SetConsoleTextAttribute ( h, BACK_MAGENTA);
printf ( "BACK_MAGENTA: 0x%X\n", BACK_MAGENTA);
SetConsoleTextAttribute ( h, BACK_BROWN);
printf ( "BACK_BROWN: 0x%X\n", BACK_BROWN);
SetConsoleTextAttribute ( h, BACK_LIGHTGRAY);
printf ( "BACK_LIGHTGRAY: 0x%X\n", BACK_LIGHTGRAY);
SetConsoleTextAttribute ( h, BACK_DARKGRAY);
printf ( "BACK_DARKGRAY: 0x%X\n", BACK_DARKGRAY);
SetConsoleTextAttribute ( h, BACK_LIGHTBLUE);
printf ( "BACK_LIGHTBLUE: 0x%X\n", BACK_LIGHTBLUE);
SetConsoleTextAttribute ( h, BACK_LIGHTGREEN);
printf ( "BACK_LIGHTGREEN: 0x%X\n", BACK_LIGHTGREEN);
SetConsoleTextAttribute ( h, BACK_LIGHTCYAN);
printf ( "BACK_LIGHTCYAN: 0x%X\n", BACK_LIGHTCYAN);
SetConsoleTextAttribute ( h, BACK_LIGHTRED);
printf ( "BACK_LIGHTRED: 0x%X\n", BACK_LIGHTRED);
SetConsoleTextAttribute ( h, BACK_LIGHTMAGENTA);
printf ( "BACK_LIGHTMAGENTA: 0x%X\n", BACK_LIGHTMAGENTA);
SetConsoleTextAttribute ( h, BACK_YELLOW);
printf ( "BACK_YELLOW: 0x%X\n", BACK_YELLOW);
SetConsoleTextAttribute ( h, BACK_WHITE);
printf ( "BACK_WHITE: 0x%X\n", BACK_WHITE);
/*
* Restore the original colors
*/
SetConsoleTextAttribute ( h, wOldColorAttrs);
system("pause");
return 0;
}
