C语言中,如何更改输出的文字中一部分的颜色?

2025-03-09 13:48:46
推荐回答(1个)
回答1:

可通过以下两种方法解决:

方法1. 用windows api. 如下代码输出123(高亮绿色前景白色背景)456(高亮黄色前景白色背景)在同一行。


#include


#include   


int main(){


HANDLE  hConsole = GetStdHandle(STD_OUTPUT_HANDLE);


SetConsoleTextAttribute(hConsole, FOREGROUND_INTENSITY | BACKGROUND_INTENSITY| FOREGROUND_GREEN |BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE);
printf("123");


SetConsoleTextAttribute(hConsole, FOREGROUND_INTENSITY| BACKGROUND_INTENSITY| FOREGROUND_RED | FOREGROUND_GREEN | 

BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE);


printf("456");


getchar();


return 0;


}


这里FOREGROUND_GREEN可以换成1-255的数字,表示不同配色。



方法2, 使用ansi颜色码。


两步:


I. 修改c:\windows\system32\CONFIG.NT文件,在最后添加一行:


device=%SystemRoot%\system32\ansi.sys


II. 然后c程序里用ansi颜色码,控制输出。 例如,输出一个绿色的123和一个黄色的456:


printf("\033[32m123\033[33m456\n");