在调试程序时多数情况下要输出很多提示信息,通过控制输出字体的颜色的显示方式可以方便我们快速查看有用的信息,而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;}

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

执行结果如下:

声明:

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

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

  1. Go语言基础--Printf格式化输出、Scanf格式化输入详解

    几种输出方式的区别 Print.Println .Printf .Sprintf .Fprintf都是fmt 包中的公共方法,在需要打印信息时需要用到这些函数,那么这些函数有什么区别呢? Print: ...

  2. c语言之printf函数输出字符数据

    //用printf函数输出字符数据 #include <stdio.h> int main() {//定义两个变量char c = 'a';int i = 97;//输出变量%c以字符形式 ...

  3. 【C语言】printf格式化输出及修饰符总结

    目录 一.不同进制及不同数据类型的转换说明 二.修饰符标识符及其应用场景总结 一.不同进制及不同数据类型的转换说明 转换说明 文字解释 %d:%ld:%lld 打印十进制整形:打印长整形:打印长长整形 ...

  4. 通过printf设置Linux终端输出的颜色和显示方式

    前言 在Linux终端下调试程序时,有时需要输出大量信息.若能控制字体的颜色和显示方式,可使输出信息对比鲜明,便于调试时观察数据. 终端的字符颜色由转义序列(Escape Sequence)控制,是文 ...

  5. C语言之printf输出中文乱码

    C语言之printf输出中文乱码 不同编辑器问题解决方案 Clion编辑器 不同编辑器问题解决方案 根据不同的编辑器的表现进行针对性的处理. Clion编辑器 按照以下步骤操作编辑器设置即可: Fil ...

  6. c++ 输出二进制_C语言 printf 格式化输出的详细示例

    printf 是C语言非常有用的一个函数,也是我们入门学习C语言的第一个函数.掌握 printf 的格式化输出,对后续的学习非常有帮助. 在程序中要使用 printf,必须要包含头文件 stdio.h ...

  7. 使用printf()设置输出字段长度

    使用printf()设置输出字段长度 printf("%*s",name): 星号可以直接替换为int型常量,如printf("%6s",name): 也可以用 ...

  8. C语言程序设计中用printf函数输出数据

    文章目录 前言 一.创建C语言项目 二.printf函数介绍 总结 前言 记录暑假期间自学C语言的小问题和总结 一.创建C语言项目 这里使用的是Visual Studio 2019 首先新建一个C++ ...

  9. C语言 printf格式化输出,参数详解

    有关输出对齐 int main(int argc, char* argv[]) {  char insertTime[20] = {"1234567890"};  double i ...

最新文章

  1. 【jquery】select下拉框赋值
  2. Spring@主要注释
  3. django migrate无效的解决方法
  4. SpringCloud微服务(01):Eureka组件,管理服务注册与发现
  5. NLog在.NET Core Console Apps中的简单应用
  6. 计算机控制器的简写,工业控制常用英语及缩写
  7. 图像匹配论文与方法超全整理
  8. 关系型数据库的ACID指的是什么?
  9. FMI飞马网 |【线上直播】京东商城的通用代码质量提升方案
  10. 全面了解 360 评估
  11. OneZero第一次站立会议Sprint Planning Meeting(2016.3.21)
  12. 美柚:女性移动APP安全攻防战
  13. 支持邮件群发功能的邮箱有哪些?邮箱如何群发邮件,邮件群发怎么发呢?
  14. 只有程序员看的懂面试圣经|如何拿下编程面试
  15. pycharm启动图片修改
  16. 在使用angular打包项目的时候 打包老是出错 内存溢出的解决办法
  17. OpenGL 实现 RGBA 转 I420
  18. 曙光实习笔记:第一天
  19. 解决问题:The field file exceeds its maximum permitted size of 1048576 bytes
  20. erlang NIF部分接口实现(一)加载过程及编写框架

热门文章

  1. Spring项目的按层打包已过时
  2. 在5分钟内将Spring Boot作为Windows服务启动
  3. JArchitect v2017发布!
  4. zk ui_高级ZK:异步UI更新和后台处理–第2部分
  5. jsf集成spring_JSF 2,PrimeFaces 3,Spring 3和Hibernate 4集成项目
  6. java内存泄漏和内存溢出_Java和内存泄漏
  7. 使用Gradle构建和应用AST转换
  8. 带有Swagger的Spring Rest API –集成和配置
  9. 欢迎使用Java 8之前要重温的10个JDK 7功能
  10. 深入了解Java 8日期和时间API