c 语言 println 能否控制颜色

avatar
作者
猴君
阅读量:0

在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转义序列,因此这种方法可能在某些环境中不起作用。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!