C语言与VT100控制码编程 声明: 1. 如果您打算阅读本文,希望您已经了解过C语言的基本语法,本文不对C语言的基本语法进行说明,因为那些东西几乎唾手可得; 2. 本文在vim中编辑,请尽量是用vim进行阅读,因为有不对齐的现象; 3. 本人强烈建议您先编译,运行本文最后提供的sinDemo源代码,再看本文的正文,因为您看了运行效果,您就知道本人为什么要写这篇文章; \\\\\\--*目录*--/////////// | 一. 需求背景 | | 二. VT100控制码是什么 | | 三. sin函数动态图sinDemo示例 | \\\\\\\\//////////////// 一. 需求背景 以前很长时间里,打开Ubuntu的终端,使用会产生动态效果的shell命令(如top)让我觉得不可思议,于是很多时候也希望自己的程序也能那样动起来,但由于自己的知识面的原因,不知道的东西太多: 1. 如何改变字符输出的位置? 2. 如何改变前景色,背景色? 3. 最重要的是,查资料时用什么关键字查也不知道? 当然,也许有人会说,去问人,可问题是我也不知道怎么去描述我的需求,更不知道谁知道这玩意.那时候觉这是一件挺难的事,于是我开始凭着感觉是用不同的关键字百度,最后是通过python找到tput,然后通过tput找到VT100码,因为时间已经过去挺久了,具体的经过也基本上忘记了. :) 在使用了一段时间的VT100码以后,我发现,我们学C语言的时候,就应该学会配合使用VT100码,因为这样你可以在黑白的终端世界里做出很酷的东西,比如俄罗斯方块,贪吃蛇等等,还有其他的一些经典的动画效果,个人觉得早期开发游戏的那些人,也许就是这么干的,本文的Demo提供了一个生成sin函数的动画效果.
本人也使用VT100码实现了在终端绘制方框,填充方框,使用不同的字符绘制直线,等等内容,并且把这些做成了一个库供自己使用.其实shell命令里的tput也是这么做,Ncurses的底层也是这么干,只不过貌似他们做得比我好,考虑得更周到. :) 二. VT100控制码是什么 VT100是一个终端类型定义,VT100控制码是用来在终端扩展显示的代码.比如在终端上任意坐标用不同的颜色显示字符.所有的控制符是'