c编程序怎么设置颜色

时间:2025-01-23 14:37:27 游戏攻略

在C语言中,设置控制台文本颜色的方法主要依赖于Windows操作系统提供的API函数。以下是几种常见的方法:

方法一:使用Windows.h头文件中的SetConsoleTextAttribute函数

```c

include

include

int main() {

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY); // 设置文本为红色并加粗

printf("This is a red text.\n");

SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_INTENSITY); // 设置文本为绿色并加粗

printf("This is a green text.\n");

return 0;

}

```

方法二:使用自定义函数

```c

include

include

void set_color(short color) {

if (color >= 0 && color <= 15) {

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);

} else {

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); // 默认颜色白色

}

}

int main() {

set_color(FOREGROUND_RED); // 设置前景色为红色

printf("This is a red text.\n");

set_color(FOREGROUND_GREEN); // 设置前景色为绿色

printf("This is a green text.\n");

return 0;

}

```

方法三:使用位运算符组合颜色

```c

include

include

int main() {

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(hConsole, FOREGROUND_RED | BACKGROUND_WHITE); // 设置前景色为红色,背景色为白色

printf("This is a red text on a white background.\n");

SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | BACKGROUND_BLACK); // 设置前景色为蓝色,背景色为黑色

printf("This is a blue text on a black background.\n");

return 0;

}

```

方法四:使用system()函数

```c

include

void set_color(int color) {

system("color " + std::to_string(color));

}

int main() {

set_color(1); // 设置背景色为黑色

printf("This is a text with a black background.\n");

set_color(15); // 设置前景色为白色

printf("This is a text with a white foreground.\n");

return 0;

}

```

注意事项

平台依赖性:

上述方法主要适用于Windows操作系统。如果在其他操作系统(如Linux)上运行,需要使用不同的方法(如ANSI转义序列)。

颜色值范围:

颜色值通常在0到15之间,其中0表示黑色,1表示蓝色,2表示绿色,3表示青色,4表示红色,5表示紫色,6表示黄色,7表示白色,8表示灰色,9表示淡蓝色,A表示淡绿色,B表示淡青色,C表示淡红色,D表示淡紫色,E表示淡黄色,F表示亮白色。

根据具体需求和操作系统,可以选择合适的方法来设置控制台文本颜色。