C语言中,如何更改输出的文字中一部分的颜色?
可通过以下两种方法解决:
方法1. 用windows api. 如下代码输出123(高亮绿色前景白色背景)456(高亮黄色前景白色背景)在同一行。
#include <stdio.h>
#include <windows.h>
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");