C语言通过printf()设置输出显示方式

在调试程序时多数情况下要输出很多提示信息,通过控制输出字体的颜色的显示方式可以方便我们快速查看有用的信息,而printf()的终端转义就为我们提供了这样的手段。

我们大家知道在程序结尾加上\n就可在输出的时候换行,其实这就是个转义字符。而字体颜色和显示方式的转义字符由控制台控制(Console Conrols )是系统的显示功能与具体语言无关。

转义字符以控制字符'ESC'开头。该字符的ASCII码十进制表示为27,十六进制表示为0x1B,八进制表示为033。多数转义字符超过两个字符,故通常以'ESC'和左括号'['开头。该起始字符称为控制序列引导符(CSI,Control Sequence Intro),通常由'\033['或'\e['代替。

具体格式为:

\033[parameter1;parameter2...m 输出字符 \033[0m
\\  parameter为属性值,多个属性之间用分号隔开,与顺序无关。
\\  \033[0m表示将所有属性重设为默认值,否则会影响后续的输出。

注意:转义字符可被控制字符'CAN'(Cancel )和'SUB'(Substitute)中断 

常用颜色属性值如下:


黑色

红色

绿色

黄色

蓝色

紫色

深绿色

白色

字体颜色

30

31

32

33

34

35

36

37

背景颜色

41

42

43

44

45

46

47

48

部分ANSI控制码:

\33[0m 关闭所有属性 

\33[1m 设置高亮度 

\33[4m 下划线 

\33[5m 闪烁 

\33[7m 反显 

\33[8m 消隐 

\33[30m -- \33[37m 设置前景色 

\33[40m -- \33[47m 设置背景色 

\33[nA 光标上移n行 

\33[nB 光标下移n行 

\33[nC 光标右移n行 

\33[nD 光标左移n行 

\33[y;xH设置光标位置 

\33[2J 清屏 

\33[K 清除从光标到行尾的内容 

\33[s 保存光标位置 

\33[u 恢复光标位置 

\33[?25l 隐藏光标 

\33[?25h 显示光标

附实现程序:

运行环境:windows10->vmware15pro->Debian 6.3.0;

#include#include
int main(int argc, char* argv[]){        printf(" The colour test starting ---\n");printf(" Upcoming screen cleaning ---\n");        for(int i=3; i>0; i--)        {                sleep(1);                printf(" Count down %d\n",i);                sleep(1);        }        printf("\033[2J");printf("\033[30m This is black  word  \033[0m\n");        printf("\033[31m This is red    word  \033[0m\n");        printf("\033[32m This is green  word  \033[0m\n");        printf("\033[33m This is yellow word  \033[0m\n");        printf("\033[34m This is blud   word  \033[0m\n");        printf("\033[35m This is purple word  \033[0m\n");        printf("\033[36m This is dgreen word  \033[0m\n");        printf("\033[37m This is white  word  \033[0m\n");        printf("\033[40m This is black  bground  \033[0m\n");        printf("\033[41m This is red    bground  \033[0m\n");        printf("\033[42m This is green  bground  \033[0m\n");        printf("\033[43m This is yellow bground  \033[0m\n");        printf("\033[44m This is blud   bground  \033[0m\n");        printf("\033[45m This is purple bground  \033[0m\n");        printf("\033[46m This is dgreen bground  \033[0m\n");        printf("\033[47m This is white  bground  \033[0m\n");        printf("\033[43;35m This is purple word yellow bground  \033[0m\n");        printf("\033[1m This is Thickening    \033[0m\n");        printf("\033[3m This is Italics       \033[0m\n");        printf("\033[4m This is Underline     \033[0m\n");        printf("\033[5m This is Twinkle       \033[0m\n");        printf("\033[7m This is Anti color    \033[0m\n");/*              printf("\033[nA");              printf("\033[nB");        printf("\033[nC");              printf("\033[nD");        //使光标上下右左移动n位        */        printf("\n The colour test end------\n\n");return 0;}

也可将其定义为宏写在头文件中,方便重复引用。

执行结果如下:

声明:

本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/338494.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何取消计算机阻止安装程序,Win10电脑安装软件提示“你必须取消阻止该发布者才能运行此软件”怎么办...

我们在使用win10系统的时候,都会在电脑中安装各种各样的软件,但是有时候在安装软件的还是,会遇到一些提示,比如“你必须取消阻止该发布者才能运行此软件”,导致安装软件失败,这该怎么办呢&…

perl大骆驼和小骆驼_快速的骆驼和云消息传递

perl大骆驼和小骆驼Apache Camel是一个流行的,成熟的开源集成库。 它实现了企业集成模式 ,这是在集成分布式系统时经常出现的一组模式。 过去,我写过很多关于Camel的文章, 包括为什么我比Spring Integration更喜欢它 ,…

mvc 事务层切换数据源_Mvc 与 Flux 与 Redux的一些思考

MVC模型 解决问题以及不足解决问题为了解决业务逻辑和界面渲染逻混在一起 MVC流程图2. 不足由于 Model 对外直接暴露了 set 和 on 方法,导致 View 层可以随意改变 Model 中的值,也可以随意监听 Model 中值的变化。这样的设定最终会导致一个庞大的 Model …

计算机语言缺省,揭秘物联网必学语言——C语言与C++的区别

C语言虽说经常和C在一起被大家提起,但可千万不要以为它们是一个东西。有很多人会有这样的疑问:C语言和C有什么区别呢?C是在C语言的基础上发展来的,但是并不是C比C语言高级,两者的编程思想不一样,应用的领域…

C/C 语言printf()

1.调用格式为 printf("<格式化字符串>", <参量表>); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输出内容格式。参量表是需要输出的一…

公路多孔箱涵设计_【公路常识中篇】公路路基边坡滑坡防护设计和预防

【公路常识中篇】公路路基边坡滑坡防护设计和预防来源&#xff1a;网络 公路路基基本知识&#xff0e;内容包括&#xff1a;公路路床&#xff1b;公路路堤&#xff1b;公路路基压实&#xff1b;影响公路路基稳定因素&#xff1b;公路路堑&#xff1b;公路路基沉陷&#xff1b;公…

按照计算机系统结构分类存储器可分为,存储器分类,存储器的分级结构

描述1、存储器概述存储器是计算机系统中的记忆设备&#xff0c;用来存放程序和数据。构成存储器的存储介质&#xff0c;目前主要采用半导体器件和磁性材料。存储器中最小的存储单位就是一个双稳态半导体电路或一个CMOS晶体管或磁性材料的存储元&#xff0c;它可存储一个二进制代…

spark 流式计算_流式传输大数据:Storm,Spark和Samza

spark 流式计算有许多分布式计算系统可以实时或近实时处理大数据。 本文将从对三个Apache框架的简短描述开始&#xff0c;并试图对它们之间的某些相似之处和不同之处提供一个快速的高级概述。 阿帕奇风暴 在风暴 &#xff0c;你设计要求的T opology实时计算的图&#xff0c;然…

嵌入式开发C语言中的uint8_t

在嵌入式开发中的C语言代码中&#xff0c;经常可以看到类似uint8_t、uint16_t、uint32_t、uint64_t这种数据类型&#xff0c;在教材中却从来没见过。实际上这些数据类型都是某种数据类型的别名。比如&#xff0c;在定义函数时用到了uint8_t。右键“uint8_t”&#xff0c;单击“…

多模态语义分析_情感分析、多模态NLP、多语言翻译...这场NLP知识盛宴不可错过!...

AI科技评论按&#xff1a;2020年12月20日&#xff0c;由中国计算机学会自然语言处理专业委员会(CCF-NLP)发起&#xff0c;联合AI研习社及各个知名高校开展的“CCF-NLP走进高校”系列高校NLP研究分享报告会第六期——华中师范大学站&#xff0c;通过线上会议直播的方式进行。本期…

电瓶车续航测试软件,重点看续航 测试2020款蔚来ES8 485KM

时间回到2019年12月28日&#xff0c;一场隆重的“NIO DAY 2019”在深圳举行&#xff0c;2020款ES8便是在那场大秀中首次亮相。5个月之后&#xff0c;2020款蔚来ES8已于4月19日正式开始交付&#xff0c;我们也在交付之日对新车进行了试驾体验。所以今天就不多废话了&#xff0c;…

海盗云商插件_推销自己的海盗猫王运营商

海盗云商插件因此&#xff0c;Java没有Elvis运算符&#xff08;或者&#xff0c;更正式地讲&#xff0c;它没有null合并运算符或null安全成员选择&#xff09;……虽然我个人不太在意它&#xff0c;但有些人似乎很喜欢它。 当一位同事需要几天后&#xff0c;我坐下来探讨了我们…

英文期刊催稿信模板_手把手教你写投稿信,另附查尔斯沃思高质量模板

导语本文是查尔斯沃思作者服务关于学术论文写作系列文章的最后一篇&#xff0c;我们邀请英国编辑团队资深成员&#xff0c;根据其自身丰富的撰稿经验&#xff0c;为中国作者呈现系统全面的写作指导建议&#xff0c;我们将其翻译成中文&#xff0c;方便大家理解。希望本系列文章…

63权限提升-Linux脏牛内核漏洞SUID信息收集

今天讲到的方法是suid和内核漏洞 案例一Linux 提权自动化脚本利用-4 个脚本 两个信息收集&#xff1a;LinEnum、linuxprivchecker 两个漏洞探针&#xff1a;linux-exploit-suggester、linux-exploit-suggester2 信息收集有什么用&#xff1f; 信息收集就能判断能否进行s…

擦窗机器人不用时怎么收纳_省心省力,智能擦窗机器人

以前擦窗户&#xff0c;一手湿抹布一手干抹布&#xff0c;身边再放点儿报纸&#xff0c;可能还得再来一个人换洗抹布。一天下来&#xff0c;两个人都是腰酸背痛的。对于又爱干净又是懒癌星人的人来说&#xff0c;玻妞擦窗机器人&#xff0c;让大家不用爬上爬下&#xff0c;也能…

C语言变量定义和赋值

定义变量的格式非常简单&#xff0c;如下所示&#xff1a;数据类型 变量名;首先要强调的一点是&#xff1a;最后的分号千万不要丢了。变量的定义是一个语句&#xff0c;我们说过&#xff0c;语句都是以分号结尾的。“数据类型”表示想要存储什么类型的数据就定义什么类型的变量…

win7计算机盘共享,win7电脑如何共享文件夹 win7电脑共享文件夹操作方法

我们在工作当中&#xff0c;中是喜欢在电脑当中创建一个文件夹&#xff0c;然后把东西放进这个文件夹当中&#xff0c;最后实现共享&#xff0c;这样的方式能够为我们省去不少时间&#xff0c;那么win7电脑如何共享文件夹呢?今天为大家带来win7电脑共享文件夹的操作步骤。win7…

cdi-api_使用CDI简化JAX-RS缓存

cdi-api这篇文章&#xff08;通过一个简单的示例&#xff09;说明了如何使用CDI Producers使其在RESTful服务中利用缓存控制语义更加容易 与HTTP 1.0中可用的Expires标头相比&#xff0c; HTTP 1.1中添加了Cache-Control标头&#xff0c;这是急需的改进。 RESTful Web服务可以…

【C语言】结构体赋值

结构体在 C 程序中使用的较为频繁&#xff0c;能对数据有一定的封装的作用。对一个结构体赋值时&#xff0c;经常采用的方式是&#xff0c;分别对其成员变量赋值。那么能否将一个结构体用赋值号&#xff08;“”&#xff09;直接赋值给另一个结构体呢&#xff1f;网上的答案不一…

vue 传参 微信_vue-router 你可能忽略的知识点

vue-router相信大家都不陌生&#xff0c;并且很多都有实战经验。可能有很多你忽略的一些点。1、丑陋的hash值vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL&#xff0c;于是当 URL 改变时&#xff0c;页面不会重新加载。const router new VueRouter(…