在C語言中,沒有像其他編程語言(如Python的println
或Java的System.out.println
)那樣的內置函數來直接控制控制臺輸出的顏色。然而,你可以使用操作系統提供的庫來實現這一功能。
對于Windows系統,你可以使用SetConsoleTextAttribute
函數來設置控制臺文本的顏色。這個函數需要一個句柄(通常是GetStdHandle(STD_OUTPUT_HANDLE)
返回的句柄)和一個屬性值,該屬性值可以組合不同的顏色屬性。例如,要設置文本為紅色,你可以使用以下代碼:
#include <windows.h>
int main() {
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
printf("This text is red!\n");
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); // 設置為白色
printf("This text is white!\n");
return 0;
}
對于Linux和macOS系統,你可以使用ANSI轉義序列來控制文本顏色。這些序列是一系列字符,當它們被打印到控制臺時,會被解釋為命令而不是普通文本。例如,要設置文本為紅色,你可以使用以下代碼:
#include <stdio.h>
int main() {
printf("\033[31mThis text is red!\033[0m\n");
printf("This text is not red.\n");
return 0;
}
在這個例子中,\033[31m
是設置文本顏色為紅色的ANSI轉義序列,\033[0m
是重置文本顏色的序列。注意,不是所有的終端都支持ANSI轉義序列,因此這種方法可能在某些環境中不起作用。