您的位置:首页 > 编程语言 > C语言/C++

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

2009-10-29 18:11 851 查看
在 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 <windows.h>
#include <iostream>

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: