颜色与响铃是怎样做到的
利用ANSI控制码实现终端中字体样式的控制。
ANSI控制码
如果你感兴趣linux终端中的颜色式样是怎么做出来的,我在这里简单讲解一下color
模块的内容。
终端样式设计的基本原理是ANSI(= American National Standard Institution)控制码,详细内容可以参照下面的链接: https://en.wikipedia.org/wiki/ANSI_escape_code
我不展开讲它的原理,我们来看一下tools模块中color模块里面color.h和color.c里面到底封装了怎样的内容:
这里涉及到了extern
关键字声明外部变量的知识点,如果有不清晰的地方,请先寻找相关教程复习一下这个知识点。
参考教程: https://www.runoob.com/cprogramming/c-storage-classes.html
本教程后续将默认读者知道extern
关键字的功能与使用方法。
这里还涉及到了C头文件引用的相关知识点,特别是自定义头文件的引用,这个知识点可能并没有在程序设计基础课程中被展开讲解,希望不清楚的读者先寻找相关教程学习一下这部分知识。
参考教程: https://www.runoob.com/cprogramming/c-header-files.html
本教程后续将默认读者知道自定义C头文件的书写格式和引用规则。
正如我们前面所说,头文件里面应该放声明,定义放在源文件里面。
在源文件里面我们可以看到,ANSI控制码其实就是一个特殊的字符串,向终端中打印这样的字符串可以改变终端的样式,我们将这些特殊的字符串封装好,以便其他模块使用。
在终端中的样式预览如下:
闪烁样式是动态的。
注意,在使用样式后如果不打印RESET
,那么之后所有的内容都会沿用这个样式。
演示一下基本的使用方式
要求:打印闪烁的Hello, WinterCode!
。
可以暂时把main.c中的其他内容注释掉来写这个演示程序。
编写源代码:
构建执行:
'\a'转意字符
\a
这个字符的含义就是alarm
,向终端中打印该字符会出发系统的默认响铃。
比如说:
到此,你应该明白了程序中的颜色和响铃是如何做到的了吧?希望在你的程序中能够多运用这些使你的程序丰富多彩,颜值赛高。
最后更新于
这有帮助吗?