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