跟我学Linux编程-4-彩色字符与显示定位.doc_第1页
跟我学Linux编程-4-彩色字符与显示定位.doc_第2页
跟我学Linux编程-4-彩色字符与显示定位.doc_第3页
跟我学Linux编程-4-彩色字符与显示定位.doc_第4页
跟我学Linux编程-4-彩色字符与显示定位.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在之前的章节中,细心的同志应该已经发现,在终端中执行命令,有时显示的内容是彩色的,如下图:终端彩色字符显示在执行ls命令后,对于可执行程序,其文件名在终端上显示是绿色的,如io1,io2。某些情况下,我们还能发一些字带有底色,有的带下划线,这是怎么回事呢?原来在ANSI标准中,终端是可以显示不同效果的文本内容的。那么我们的程序中能不能也显示这样花花绿绿的文字呢?答案是肯定的。我们现在来看一个彩色版的Hello, world!程序:彩色版Hello, world编译并执行程序,我们得到如下结果:彩色版Hello, world程序运行结果我们可以看到,Hello, world!文字是绿色,同时有白色的底色。分析代码不难发现,在printf语句中,字符串”Hello, world!”的前后各多了一断奇怪的字符。先分析:0330;32;47m其中,033是一个字符样式设置符开始标识,是告诉终端,我接下来要设置字符颜色了;紧接着是三个整数,中间使用”;”号隔开,第一个整数表式样式编号,这里是1,第二个整数表前景也就是文字颜色编号,这里32,第三个整数表示背景颜色编号,这里是47。三种编号取值及意义如下表:类型编号意义前景30-37对应黑、红、绿、黄、蓝、紫、青、白背景40-47对应黑、红、绿、黄、蓝、紫、青、白样式0终端默认1高亮显示4下划线5闪烁7反显8隐藏最后,是字母m,表示我们对字符颜色的设定参数完了,告诉终端printf后面显示文字按此执行吧。再分析:0330m,意义非常简单,是告诉终端,之前应用的文字颜色设置,不要再生效了,按照终端默认的方式显示后边的内容吧。有兴趣的同志可以尝试去掉这串字符,编译运行程序,你会发现,程序结束后,在终端里输入命令,也会是和Hello, world一样的彩色效果:实际上,文字的样式、前景、背景也可以单独设置。设置方式为:003编号m。例子中介绍的是一种组合模式。就也是003与m之间可以只有一种设定,也可以有多种设定,不同设定之间使用;号隔开。小结:1 彩色字符样式设置格式为:033样式;前景;背景m2 想恢复终端原来的字符显示,输出字符串:0330m3 单独的样式设定格式为:033编号m如何控制彩色文字显示,已经介绍完毕。接下来介绍终端中如何指定文本的显示位置。通常,我们调用printf,要行换行,要么一个一个字符往后排,这样的顺次显示字符内容。我们能不能够随意控制字符的显示位置呢?答案依然是肯定的。我们看个例子:光标定位源码编译运行程序,我们得到如下结果:程序运行结果可以看到,1显示的坐标为(1, 1),2显示的坐标为(2, 2),3显示的坐标为(3, 3)。是什么东西起到了这个作用呢。在Linux终端中,可以使用:033x;yH的方式来定位下一个字符显示的位置。我们来分析一下代码:printf(033%d;%dH%d, i, i, i);正是将数字i显示在坐标为(i, i)的位置。另外,我们在程序开始,调用了printf(0332J),其作用的清屏。程序的最后,输出一个回车换行,使得程序退出后命令提示符能够靠左显示。总结:无论是彩色字符也好,光标定位也好,在终端中都是使用printf特殊字串来实现的。终端中还有其他类似的功能,这里一一列出,供大家参考学习:颜色代码:QUOTE:字背景颜色范围: 40-49 字颜色: 30-39 40: 黑 30: 黑 41: 红 31: 红 42: 绿 32: 绿 43: 黄 33: 黄 44: 蓝 34: 蓝 45: 紫 35: 紫 46: 深绿 36: 深绿 47: 白色 37: 白色ANSI控制码:QUOTE: /0330m 关闭所有属性 /0331m 设置高亮度 /034m 下划线 /0335m 闪烁 /0337m 反显 /0338m 消隐 /03330m - /03337m 设置前景色 /03340m - /03347m 设置背景色 /033nA 光标上移n行 /03nB 光标下移n行 /033nC 光标右移n行 /033nD 光标左移n行 /033y;xH设置光标位置 /0332J 清屏 /033K 清除从光标到行尾的内容 /033s 保存光标位置 /033u 恢复光标位置 /033?25l 隐藏光标 /33?25h 显示光标经过这一章节的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论