使用 C++ 在命令行中打印彩色文字

在 Windows 中,可以使用函数 SetConsoleTextAttribute() 来设置控制台的背景和前景的颜色。关于该函数的详细接口可以参考 MSDN ,这里仅仅举一个例子来介绍如何使用它。

我们可以定义一个自己的函数来同时设置前景和背景的颜色,参数1表示前景颜色,参数2表示背景颜色。

// 参数1和参数2分别是前景的颜色和背景的颜色。 // // 参数1可选择一下值: //// FOREGROUND_BLUE Text color contains blue. //// FOREGROUND_GREEN Text color contains green. //// FOREGROUND_RED Text color contains red. //// FOREGROUND_INTENSITY Text color is intensified. // // 参数2可选择一下值: //// BACKGROUND_BLUE Background color contains blue. //// BACKGROUND_GREEN Background color contains green. //// BACKGROUND_RED Background color contains red. //// BACKGROUND_INTENSITY Background color is intensified. bool SetConsoleColor( WORD forceGroundColor, WORD backGroundColor ) { // 获得缓冲区句柄。参数可以选择一下三种值: //// STD_INPUT_HANDLE 标准输入的句柄 //// STD_OUTPUT_HANDLE 标准输出的句柄 //// STD_ERROR_HANDLE` 标准错误的句柄 HANDLE handle = GetStdHandle( STD_OUTPUT_HANDLE ); if( handle == 0 ) return false; //设置文本及背景颜色。 BOOL ret = SetConsoleTextAttribute( handle, forceGroundColor | backGroundColor ); return( ret == TRUE ); }

 

下面在 main() 函数中调用该函数:

#include #include int main() { SetConsoleColor( FOREGROUND_GREEN, BACKGROUND_BLUE ); std::cout << "Hello green !" << std::endl; SetConsoleColor( FOREGROUND_RED, BACKGROUND_BLUE | FOREGROUND_GREEN ); std::cout << "Hello red !" << std::endl; return 0; }

 

你可能感兴趣的:(C++)