天天看点

C语言修改终端文字颜色

LINUX系统与WINDOWS系统都有修改终端文字颜色的系统调用。下面分别给出LINUX系统与WINDOWS系统修改终端文字颜色的代码。查看完整测试代码

LINUX系统修改终端颜色源码

typedef enum
{
	cRED = 31,
	cBLUE = 34,
	cGREEN = 32,
	cWHITE = 37,
	cYELLOW = 33
} CONSOLE_COLOR;

void SetConsoleTextColor(CONSOLE_COLOR color)
{
	printf("\e[%dm", (int)(color));
}
           

WINDOWS系统修改终端颜色源码

#include <conio.h>
#include <windows.h>

typedef enum
{
	cRED = FOREGROUND_RED,
	cBLUE = FOREGROUND_BLUE,
	cGREEN = FOREGROUND_GREEN,
	cYELLOW = FOREGROUND_RED | FOREGROUND_GREEN,
	cWHITE = FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN
} CONSOLE_COLOR;

void SetConsoleTextColor(CONSOLE_COLOR color)
{
	static HANDLE console = NULL;

	if (console == NULL) console = GetStdHandle(STD_OUTPUT_HANDLE);

	SetConsoleTextAttribute(console, color);
}
           

测试代码(查看完整测试代码)

int main(int argc, char** argv)
{
	SetConsoleTextColor(cRED);
	puts("hello xungen");

	SetConsoleTextColor(cBLUE);
	puts("hello xungen");

	SetConsoleTextColor(cGREEN);
	puts("hello xungen");

	SetConsoleTextColor(cYELLOW);
	puts("hello xungen");
	
	return 0;
}
           

查看完整测试代码

继续阅读