1.安装
ubuntu11.10下默认没有安装curses函数库,(CentOS下默认已经安装,可以直接在usr/include下查看是否有该头文件来确定)使用
>sudo apt-get install ncurses-dev
安装curses库,这样在curses函数库的头文件和库文件就被分别安装在/usr/include/和/usr/lib/下,在编译程序时,直接使用命令:
gcc program.c -o program -lcurses
完成编译,运行。
2.curses术语和概念
curses工作在屏幕,窗口和子窗口之上。屏幕是设备全部可用显示面积(对终端是该窗口内所有可用字符位置),窗口与具体例程有关。如基本的stdscr窗口等。
curses使用两个数据结构映射终端屏幕,stdscr和curscr。stdscr是“标准屏幕”(逻辑屏幕),在curses函数库产生输出时就刷新,是默认输出窗口(用户不会看到该内容)。curscr是“当前屏幕”(物理屏幕),在调用refresh函数是,函数库会将curscr刷新为stdscr的样子。
使用initscr();和endwin();两个函数对函数库进行初始化和重置。
#include<curses.h> WINDOW *initscr(void); int endwin(void);
3.屏幕
函数基本分为如下几类:
输出到屏幕:
1 int addch(const chtype char_to_add); 2 int addchstr(chtype *const string_to_add); //当前位置添加字符(串) 3 4 int printw(char *format, ...); //类似与printf 5 int refresh(void); //刷新物理屏幕 6 int box(WINDOW *win_ptr, chtype vertical, chtype horizontal); //围绕窗口绘制方框 7 int insch(chtype char_to_insert); //插入一个字符(已有字符后移) 8 int insertln(void); //插入空白行