在c语言中如何实现输出字符改变颜色呢

在c语言中如何实现输出字符改变颜色呢

作者:Rhett Bai发布时间:2026-03-23阅读时长:0 分钟阅读次数:8

用户关注问题

Q
如何在C语言中更改终端输出文本的颜色?

我想让C语言程序在终端输出的文字显示不同的颜色,这样输出结果更易读,应该如何实现?

A

使用ANSI转义码实现文本颜色更改

在C语言中,可以通过打印ANSI转义码来改变终端输出文本的颜色。例如,输出红色文字可以使用"\033[31m",输出结束后使用"\033[0m"恢复默认。示例代码:
printf("\033[31m这是红色的文本\033[0m\n");这种方法支持大多数类Unix系统的终端,但在Windows控制台中可能需要额外配置。

Q
在Windows环境下如何用C语言给控制台文字添加颜色?

我的电脑是Windows系统,用C语言编写的程序如何在命令提示符窗口给文本加上颜色?

A

利用Windows API设置控制台文本颜色

Windows控制台不直接支持ANSI转义码,需要使用Windows API函数实现颜色更改。可以调用SetConsoleTextAttribute函数,并传递控制台句柄和颜色属性码。示例代码中先调用GetStdHandle获取句柄,再用SetConsoleTextAttribute设置颜色,比如绿色为2。完成输出后,建议恢复默认属性以避免影响后续输出。

Q
输出彩色字符时如何保证文本输出恢复到默认颜色?

我用C语言改变了输出文本的颜色,怎么确保后续的输出不受影响,恢复到控制台的默认颜色?

A

在输出完成后重置颜色属性

改变文本颜色后,应及时重置为默认颜色。在使用ANSI转义码时,输出结束后打印"\033[0m"可以恢复默认颜色。在Windows中,调用SetConsoleTextAttribute,输出彩色文本后再次调用,并传入默认属性值使颜色恢复。这样可以保证后续文本正常显示,不会一直保持之前设置的颜色。