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

 我来答
大大的Wiener
推荐于2019-09-26 · TA获得超过6.4万个赞
知道大有可为答主
回答量:392
采纳率:90%
帮助的人:33.1万
展开全部

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

方法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");

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式