1. 程式人生 > >CC++控制臺顏色設置類

CC++控制臺顏色設置類

log true endif plain p s ++ win pan void

windows和Linux都可用的一個類...用來設置顏色,沒有太復雜。簡單夠用吧。

#ifdef _WIN32
#include <Windows.h>

class FontColor
{
public:
	FontColor()
	{
		m_hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
	}

	void SetColor(int nColor)
	{
		SetConsoleTextAttribute(m_hStdOut, nColor);
	}

	void UnSetColor()
	{
		SetConsoleTextAttribute(m_hStdOut, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
	}

	~FontColor()
	{
	}
private:
	HANDLE	m_hStdOut;
};

#else 

class FontColor
{
public:
	FontColor()
	{
		m_bUnset = true;
	}

	void SetColor(int nColor)
	{
		printf("\033[%dm", nColor%10 + 30);
		m_bUnset = false;
	}

	void UnSetColor()
	{
		if(!m_bUnset)
		{
			printf("\033[0m");
			m_bUnset = true;
		}
	}

	~FontColor()
	{
		UnSetColor();
	}

private:
	bool	m_bUnset;
};

#endif

輸出效果:

技術分享

Linux顏色列表表示(本類做了點特殊處理):

字背景顏色範圍:40----49
40:黑
41:深紅
42:綠
43:黃色
44:藍色
45:紫色
46:深綠
47:白色

字顏色:30-----------39
30:黑
31:紅
32:綠
33:黃
34:藍色
35:紫色
36:深綠
37:白色


C\C++控制臺顏色設置類