1.cbreak():用户输入会被放入终端程序的输入缓冲区中,直到输入回车键才将缓冲区中的内容传送给程序,也就是行缓冲模式,调用cbreak()后,会禁用行缓冲模式,用户的输入会被直接传送给程序而不用等待回车键。调用nocbreak()函数恢复行缓冲模式;
2.raw():通常如方向键、CRTL+Z等控制键会被终端程序处理,当调用raw()后,这些功能键会被终端程序传送给程序进行处理;
3.noecho():默认情况下,用户的输入会被回显在界面上,这样当你输入功能键则会在界面显示一些奇怪的字符,通过调用noecho()函数禁用回显,由程序控制页面字符的显示情况。echo()恢复回显模式;
4.keypad():这个函数启用功能键,如F1、F2和方向键等,keypad(stdscr, TRUE)启用标准显示设备stdscr上使用功能键,FALSE则关闭。stdscr是需要控制的窗口,也可以是你自己新建的WINDOW*类型的窗口;
5.halfdelay():启用半延时模式(half-delay mode),和cbreak()函数一样,用户的输入会被立即显示在屏幕上,当会等待一段时间(以0.1秒为单位),超时没有输入则返回ERR,传递的参数是一个整型参数,以0.1秒为单位。一般用于输入密码的等待超时响应;
二、输出类
1.printw(char *string):在stdscr的当前光标位置输出字符串string
2.mvprintw(int y, int x, char *string):移到坐标(y,x)处输出字符串string
3.wprintw(WINDOW* win, char *string):在窗口win的当前光标位置输出字符串string
4.mvwprintw(WINDOW* win, int y, int x, char *string):在窗口win的坐标(y,x)处输出字符串string
5.addch():输出单个字符,并且可以在输出的同时设置字符的显示属性,如addch(ch | A_BOLD | A_UNDERLINE)将输出字符ch加粗并加下划线效果输出。这些效果也可以通过attrset()、attron()和attroff()这些函数来设置。还有mvaddch()、waddch()、mvwaddch()与printw衍生函数类似
6.addstr():和addch()函数类似,只是输出的是字符串而不是单个字符,其衍生函数也和addch()函数一致,不再累赘。
三、输入类
1.getch():输入一个字符,若没有调用cbreak()则需要等待回车键才读取输入字符
2.scanw():和scanf函数类似,能够在屏幕任意位置输入字符。也有衍生函数wscanw()、mvscanw()和mvwscanw()函数。
3.getstr(str):输入一个字符串
四、输出修饰
1. attron()、attroff()、attrset():修饰输出的文字的效果,attron和attroff是搭配使用的,在输出文字前调用attron开启某种修饰效果,在输出文字后调用attroff关闭开启的修饰效果。文字修饰效果:
A_NORMAL 普通字符输出
A_STANDOUT 终端字符最亮
A_UNDERLINE 下划线
A_REVERSE 字符反白显示
A_BLINK 闪动显示
A_DIM 半亮显示
A_BLOD 加亮加粗
A_PROTECT 保护模式
A_INVIS 空白显示模式
attron可以对这些效果进行组合,如attron(A_REVERSE | A_BLINK)
attron和attrset的区别是,attron只从被调用的地方开始生效,而attrset为整个窗口设置效果,并且会覆盖先前为整个窗口设置的任何修饰效果。
standend()函数关闭所有设置的修饰,这个函数的作用和attrset(A_NORMAL)函数是相同的。
2.chgar()函数在不移动光标的情况下修饰已输出的字符的修饰效果,如chgat(-1, A_BLOD, 0, NULL)表示将光标的当前行的字符加粗,不设置颜色。其中-1表示修饰字符的个数,-1表示整行;A_BLOD是修饰效果,可以用 | 进行组合;0表示init_pair()设置的颜色,0则是不设置颜色,最后一个参数总为NULL。其衍生函数mvchgat()、wchgat()、mvwchgat()同上,只是还需要一些位置和窗口信息