使用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; }