Text color

文字顏色

系統文字顏色

使用system("color 背景色前景色")

※會改變輸出文字的顏色,以最後一次的設定顏色為準。※

黑、淺綠、白、灰、淡藍、淡綠、淡淺綠、淡紅、淡紫、淡黃、亮白

0、123456、7、8、9、A、B、C、D、E、F

白底黑字:system("color F0")

黑底紅字:system("color 04")

黑底綠字:system("color 02")

黑底藍字:system("color 01")

範例:

改變畫筆顏色

適合多種文字顏色顯示

引入標頭檔 windows.h

#include<windows.h>

1.使用SetConsoleTextAttribute

語法

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)

FOREGROUND_INTENSITY:高亮度 0x0008

2.以十六進位設定文字顏色

語法

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x000?)、? : 1~F

0x0001 = 淡藍色

0x0002 = 淡綠

0x0003 = 淡青

0x0004 =

0x0005 = 粉紅色

0x0006 =

0x0007 = 亮白

0x0008 = 淡白

0x0009 = 亮藍

0x000A = 亮

0x000B = 亮

0x000C = 亮

0x000D = 亮粉紅色

0x000E = 亮

0x000F = 亮

3.設定背景

語法

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x00?0)、? : 1~F

紅色字:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED)

色字:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN)

色字:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE)

色字:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN)

黃色字:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN)

色字:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE)

色字:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE)


1.使用副程式 SetColor()

程式碼

#include<windows.h>

void SetColor(int color = 7)

{

HANDLE hConsole;

hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(hConsole,color);

}


※使用for迴圈來呼叫,挑選自己喜歡的背景與文字顏色。※

2.使用 system("color 0a");

//

程式碼

#include <stdlib.h>

呼叫:

system("color 0F"); //黑底

system("color F0"); //白底

3.使用副程式 goto();

//改變游標位置

#include<windows.h>

void gotoxy(int xpos, int ypos)

{

COORD scrn;

HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE);

scrn.X = xpos; scrn.Y = ypos;

SetConsoleCursorPosition(hOuput,scrn);

}