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

比如,输出一个蓝色的hello,一个黄色的world... 比如,输出一个蓝色的hello,一个黄色的world 展开
 我来答
大大的Wiener
2018-03-31 · TA获得超过6.4万个赞
知道大有可为答主
回答量:392
采纳率:90%
帮助的人:31.7万
展开全部

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

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

tattackor
推荐于2017-10-04 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:862万
展开全部
方法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");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tianyuwuse
2012-08-23 · TA获得超过1117个赞
知道小有建树答主
回答量:494
采纳率:100%
帮助的人:233万
展开全部
你如果用TC的话,可以通过类似下面的例子来实现彩色输出文字
#include<conio.h>
main()
{
textcolor(RED);
cprintf("this is adsjskldfjlsd");
textcolor(GREEN);
cprintf("this is adsjskldfjlsd");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
maogm12
推荐于2017-09-01 · TA获得超过130个赞
知道答主
回答量:85
采纳率:0%
帮助的人:57.1万
展开全部
呃,至少windows的命令行下面是没有颜色的,shell里面颜色的配置也是预先配置好的。
如果你要这样干的话,那就要学C语言的图形编程,常用C的图形库有OpenGL,SDL什么的,turbo c 上倒是有一个graphics 可以在命令行那儿画园划线什么的,不过那个已经是DOS时代的事了,现在没什么人用了
更多追问追答
追问
呃...OGL倒是会用,不过我想要一个命令行的效果=w=...所以真的没办法了么...?貌似TC里的textcolor+cprintf可以用,但是TC的编译器总是让人莫名其妙...貌似标准不一样?
追答
那我就不清楚了,话说你在命令行下写颜色字是准备干嘛呢?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bjdonglw
2012-08-22 · TA获得超过3813个赞
知道大有可为答主
回答量:1万
采纳率:58%
帮助的人:2045万
展开全部
除非自编程序。
追问
追答
使用TC2.0编程。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式