curses

来源:互联网 发布:c语言汉诺塔递归 编辑:程序博客网 时间:2024/05/17 21:53

curses是一个在Linux/Unix下广泛应用的图形函数库.,作用是可以绘制在DOS下的用户界面和漂亮的图形。

用法

编辑
1. 包含头文件:curses.h
2. 编译时应加上链接语句-lcurses,如:gcc temp.c -o temp -lcurses
3. 重要的函数:
函数功能initscr()
初始化curses库和ttty
(在开始curses编程之前,必须使用initscr()这个函数来开启curses模式)
endwin()
关闭curses并重置tty
(结束curses编程时,最后调用的一个函数)
move(y,x)将游标移动至 x,y 的位置getyx(win,y,x)得到目前游标的位置(请注意!是 y,x 而不是&y,&x)clear() and erase()将整个萤幕清除(请注意配合refresh() 使用)echochar(ch)显示某个字元addch(ch)在当前位置画字符chmvaddch(y,x,ch)在(x,y) 上显示某个字元。相当於呼叫move(y,x);addch(ch);addstr(str)在当前位置画字符串strmvaddstr(y,x,str)在(x,y) 上显示一串字串。相当於呼叫move(y,x);addstr(str);printw(format,str)类似 printf() ,以一定的格式输出至萤幕mvprintw(y,x,format,str)在(x,y) 位置上做 printw 的工作。相当於呼叫move(y,x);printw(format,str);getch()从键盘读取一个字元。(注意!传回的是整数值)getstr()从键盘读取一串字元。scanw(format,&arg1,&arg2...)如同 scanf,从键盘读取一串字元。beep()发出一声哔声box(win,ch1,ch2)自动画方框refresh()使屏幕按照你的意图显示。比较工作屏幕和真实屏幕的差异,然后refresh通过终端驱动送出那些能使真实屏幕于工作屏幕一致的字符和控制码。(工作屏幕就像磁盘缓存,curses中的大部分的函数都只对它进行修改)standout()启动standout模式(一般使屏幕发色)standend()关闭standout模式
常用的初始化函数集合:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void initial()
 
 
{
     
 
    initscr();                    //开启curses模式
 
    cbreak();                     //开启cbreak模式,除 DELETE 或 CTRL 等仍被视为特殊控制字元外一切输入的字元将立刻被一一读取
 
    nonl();                       //用来决定当输入资料时,按下 RETURN 键是否被对应为 NEWLINE 字元
 
    noecho();                     //echo() and noecho(): 此函式用来控制从键盘输入字元时是否将字元显示在终端机上
 
    intrflush(stdscr,false);
 
    keypad(stdscr,true);          //当开启 keypad 後, 可以使用键盘上的一些特殊字元, 如上下左右>等方向键
 
    refresh();                    //将做清除萤幕的工作
 
}