版权声明:本文为博主原创文章未经博主允许不得转载。 /qq_/article/details/
??Linux/Unix编程往往都是在终端下进行的但即使是基础文本的编程依然能够尽可能地实现很多图形控制,像vi可以实現在终端中全屏的编辑器就是基于curses的一个具体实现
Unix中重新编写了curses。现在几乎所有的Unix/Linux操作系统都带了curses函数库curses也加入了对鼠标的支持,一些菜单和面板的处理
??以Ubuntu为例,安装curses库的命令行如下:
??需要注意的是 : 在编译时要加上 -lcurses(其实这个不用说也知道并没什么要注意的…)
??上述代码中,有几句话是编写基于curses程序必须有的:
??而在初始化与重置操作之间的部分中几个函数的说明如下:
- move函数用於移动光标。需要注意的是坐标原点在左上角y轴正方向向下,x轴正方向向右最重要的是坐标的表示法并不是(x, y)而是(y, x),其实可以理解为先寫第几行再写第几列具体如下图:
- printw是基于curses的格式化打印函数,和printf的用法没什么不同
- 对于refresh函数需要知道逻辑屏幕和物理屏幕的区别。在cursesΦ所谓的打印、显示到屏幕都是对于逻辑屏幕而言的真正的屏幕(物理屏幕)并没有发生变化。仅当使用了refresh函数后当前时刻逻辑屏幕仩的内容就会替换掉当前时刻物理屏幕的内容。
- 最后的sleep肯定不是curses的内容了…这仅仅为了让程序慢一点退出方便我截个图…