如何在C语言中将文字显示为花里胡哨的多种颜色

这篇具有很好参考价值的文章主要介绍了如何在C语言中将文字显示为花里胡哨的多种颜色。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        Hello大家好!最近刚刚做完C语言的课程设计。在评分标准中有一项是展示界面美观整洁。学前端的我对花里胡哨的界面情有独钟,这里为大家简单介绍三种改变字体颜色的方法。

        注意:本文中所有演示截图均来自VS 2022。

目录

 改变C语言显示界面字体颜色的三种方式

  system颜色函数 

  \033特殊转义字符 

 SetConsoleTextAttribute函数  


 改变C语言显示界面字体颜色的三种方式

  system颜色函数 

        首先介绍的是最简单的一种更改颜色方式。但简单的同时,他的效果不会太灵活。 

        system 函数包含于  #include<stdlib.h>  头文件中。设置默认的控制台前景和背景颜色是它众多功能之一。基本语法如下:

    system("color xy");

         其中,x 和 y 为两个十六进制数字,分别用于设定背景色以及前景色(字体颜色)。注意 x 和 y 两个字符间没有空格也没有逗号,格式不标准时运行程序会打印出该函数的用法。x , y可以对应以下任意值:

0 = 黑色 4 = 红色 8 = 灰色 C = 淡红色
1 = 蓝色 5 = 紫色 9 = 淡蓝色 D = 淡紫色
2 = 绿色 6 = 黄色 A = 淡绿色 E = 淡黄色
3 = 浅绿色 7 = 白色 B = 浅淡绿色 F = 亮白色

        如果没有给定任何参数,此命令会将颜色还原到 CMD.EXE 启动时的颜色。这个值来自当前控制台窗口、/T 命令行开关或 DefaultColor 注册表值。

        如果尝试使用相同的前景和背景颜色来执行COLOR 命令,COLOR 命令会将 ERRORLEVEL 设置为 1。

        值得注意的是,你可能在网上看到过别人使用 system 函数时引用了 #include<Windows.h> 头文件,并成功使用了 system 函数。#include<Windows.h> 主要针对操作系统,包含大多数对系统有用的函数,如 Sleepsystem 等。#include<stdlib.h>主要包含了一些宏指令和动态函数,如free(),malloc()等。笔者猜想,两个头文可能包含有少数相同的函数,遇到这种函数的时候,两个头文件用哪个都可以。(凭空猜想,欢迎评论区指正)

        现在我们运行一下程序试试吧!

    #include<stdio.h>
    #include<windows.h>
    int main()
    {
    	system("color EC");
    	printf("这是第一行\n");
	    system("color 74");
	    printf("这是第二行");
	    return 0;	
    }

结果如下: 

c语言如何设置字体颜色,C语言,字体颜色,c语言,开发语言
运行结果如图(编译器说这个粉唧唧的颜色是白色那它就是白色)

        哇缺!怎么回事!背景色是 7(白色),前景色是 4(红色),代码第五行完全没有参与感捏!这是因为 system 函数加上 color 指令 是对整个控制台的文本属性进行改变,只能把整个控制台改成一种颜色,无法达到同一页面显示多种颜色的效果。这也就是刚刚介绍这个函数时说“他的功能不会太灵活”的原因。那么有没有一种方式可以更加灵活地改变字体颜色呢?为此,我们引入下面两个方法。

  \033特殊转义字符 

         what is \033 ?

        八进制的 \033 即 ESC 符号,Windows 中,ESC的十进制为 \027,十六进制为 \x1b。学过 HTML 的同学可能会觉得 \033 的用法和前端的标签有些像,常常成对儿出现。标准语法如下:

    \033[参数1;参数2;参数3m

        该转义字符直接应用于printf()函数中,这串代码生效即意味着从程序执行到这里开始,后面所有的屏幕打印字符均以该代码指定的效果显示。所以一般使用\033 进行颜色改变后,应当使用 \033[0m 进行还原。参数 1 指定显示方式,参数 2 指定前景色(字体颜色),参数 3 指定背景色。参数 3 后紧接小写字母 m 表示结束。相关参数值与对应效果如下:

单值控制码(与颜色改变无关且不能与其他控制码同时使用) 

控制码

效果
\033[nA 光标上移 n 行
\033[nB 光标下移 n 行
\033[nC 光标右移 n 列
\033[nD 光标左移 n 列
\033[y;xH 设置光标位置
\033[2J 清屏
\033[k 设置光标位置(y行,x列)
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\033[?25h 显示光标

字体颜色(前景色)

控制码 字体效果
\033[0m 关闭所有属性
\033[1m 设置字体高亮度
\033[2m 低亮(减弱)显示
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m 黑色
\033[31m 红色
\033[32m 绿色
\033[33m 黄色
\033[34m 蓝色
\033[35m 紫色
\033[36m 浅蓝色
\033[37m 白色

 背景颜色

控制码 背景效果
\033[40m 黑色
\033[41m 红色
\033[42m 绿色
\033[43m 黄色
\033[44m 蓝色
\033[45m 紫色
\033[46m 浅蓝色
\033[47m 白色

         你可能注意到了,显示方式,前景色,背景色不同含义的数值都是唯一的且没有重复。所以三个参数的书写先后顺序不做硬性要求,不过还是建议按照默认规范的格式书写。三个参数可以只写一到两个。

        下面做一个简单的示范:

    #define _CRT_SECURE_NO_WARNINGS 1
    #include<stdio.h>
    int main()
    {
    	printf("\033[43;1m高亮文字黄色背景\n");
    	printf("这是第二行\033[0m\n");
	    printf("\033[43;1m高亮文字黄色背景\033[0m\n");
	    printf("这是第四行\033[0m\n");
	    printf("这一行\033[43;1m作为测试\033[0m\n");
	    return 0;
    }

 c语言如何设置字体颜色,C语言,字体颜色,c语言,开发语言

        \033在笔者无论蓝色还是红色的Dev C++中都无法正常工作,暂时没有找到原因和解决办法。有没有大佬可以评论区解答一手?

 SetConsoleTextAttribute函数  

        函数头文件:#include<Windows.h>

        和\033类似地,代码执行到该函数时,后面所有的屏幕打印字符均以该代码指定的效果显示。基本语法如下:

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),前景色 | 背景色 | 前景加强 | 背景加强);

        关于这个代码的用法,请戳下面链接查看大佬详解~

        (我就是从这位大佬这里学的这个函数的用法) 

        戳我,看大佬的讲解。

        本篇文章到此就结束咯,希望能对你有所帮助。浅点一手关注,下一周分享更多能把美观分拿满的小技巧。

        留存问题:为什么\033代码在Dev C++中无法使用?期待在评论区得到大佬的解答。

c语言如何设置字体颜色,C语言,字体颜色,c语言,开发语言文章来源地址https://www.toymoban.com/news/detail-772261.html

到了这里,关于如何在C语言中将文字显示为花里胡哨的多种颜色的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ef Core花里胡哨系列(10) 动态起来的 DbContext

    我们知道, DbContext 有两种托管方式,一种是 AddDbContext 和 AddDbContextFactory ,但是呢他们各有优劣,例如工厂模式下性能更好呀等等。那么,我们能否自己托管 DbContext 呢? Github Demo:动态起来的 DbContext 场景: 结合我们之前的文章 [Ef Core花里胡哨系列(5) 动态修改追踪的实体、

    2024年02月03日
    浏览(49)
  • 一款适合程序员的 Markdown 简历模版,拒绝花里胡哨

    一款适合 IT 行业的 Markdown 简约简历模版,拒绝花里胡哨 (1)安装 Markdown 编辑软件,推荐使用 Typora 编辑器(免费版 Typora 百度网盘下载点此下载)。 (2)下载本项目,修改 Resume.md 文件即可。 (3)将 style 文件夹下的所有的.css 复制到 Typora 的主题文件夹 (4)主题文件

    2024年02月06日
    浏览(54)
  • MATLAB | 这些各种各样的花里胡哨的折线填充图咋画

    这些各种各样的花里胡哨的折线填充图咋画? 折线下面填充纯色的话area函数很容易做到,但上面那些各种花里胡哨的填充图就没那么容易做到了,本期就来讲讲这些玩意都是咋画的: 事先说明,为了绘图好看本文绝大多数图像都使用如下函数进行修饰: 二维填充所用到的数

    2023年04月16日
    浏览(48)
  • Ef Core花里胡哨系列(5) 动态修改追踪的实体、动态查询

    同样还是 IModelCacheKeyFactory ,不过这次要采用主动刷新的方式。 动态实体,根据配置等生成动态类型来当作数据库实体使用,当配置修改时,可以调用 DynamicModelCacheKeyFactory.Refresh() 刷新DbContext。 动态构建部分不提供,我们将在其它的地方进行讨论。 我这里做了简化处理,直

    2024年02月03日
    浏览(38)
  • 【一步教学,一步到位】花里胡哨的3D翻页卡片,隔壁产品都馋哭

    with(cardShadowSizeFunc!!) { inParamMin = 0F inParamMax = 180F outParamMax = 50F outParamMin = 0F initValue = 10F } cardShadowDistanceFunc = CardShadowDistanceFunc() with(cardShadowDistanceFunc!!) { inParamMin = 0F inParamMax = 180F outParamMax = 50F outParamMin = 0F initValue = 10F } } 复制代码 2.5.3 阴影变化 为了更好地模拟3D效果,卡片阴影

    2024年04月14日
    浏览(42)
  • flutter中文字长度溢出时如何显示省略号?

    经常在绘画UI的时候遇到这种问题,依据场景不同,说下我自己的常用方案: 1. 第一种就是给Text标签外层嵌套一层Container,并指定width宽度 2.第二种是自动适配模式,我常用于Text外层嵌套了Row和Column以及一些布局控件中

    2024年02月15日
    浏览(49)
  • 第五十六回:如何在Button中同时显示文字和图标

    我们在上一章回中介绍了命名路由相关的内容,本章回中将介绍 如何在Button中同时显示文字和图标 .闲话休提,让我们一起Talk Flutter吧。 我们在项目中的使用Button大部分是文字形式的按钮,就是在按钮上面显示文字,通过文字来了解按钮的功能。也有一部分是图标形式的按钮

    2024年02月09日
    浏览(45)
  • iOS16图标文字阴影如何去掉?分享阴影不显示的方法!

    更新到iOS16正式版的iPhone用户,发现继续使用自己喜欢的浅色壁纸时, 每个APP图标下方文字都出现了阴影 。 如上图中所示,iOS16的图标文字阴影,应该是苹果开发为了在 浅色背景下凸出APP名称 而设计的。但部分iPhone用户纷纷表示,这样的UI设计确实无法接受。 iOS16浅色壁纸

    2024年01月21日
    浏览(40)
  • QT 如何让QLineEdit的文字从最左边开始显示

    当QLineEdit的文字长度超过了控件宽度,一般而言(控件文字设为靠左对齐),用户只能看到这一长串文字的后半段部分。但是如果想让QLineEdit从最左边开始显示字符串内容呢? 举个例子,\\\"abcdefghijklmnopqrstuvwxyz0123456789\\\"这一长串字符串,在QLineEdit中显示时,可能只能看到“012

    2024年01月18日
    浏览(36)
  • Ant Design Vue 中将 Table 表格中的数字类型转换为文字的方法详解

    在使用 Ant Design Vue 开发时,有时需要将 Table 表格中的数字类型字段转换为对应的文字表示,以提供更直观的数据展示。本文将详细介绍在 Ant Design Vue 中将 Table 表格中的数字类型转换为文字的方法,帮助您灵活地处理数据展示需求。 在实际的应用中,我们经常会遇到需要将

    2024年02月11日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包