2.2 终端模式设置
=================
2.2.1 ECHO模式
---------------
* 函数
int echo() / int noecho()
* 说明
1. ECHO模式即回显模式,ECHO模式用来决定用户的输入是否立即回显
2.2.2 CBREAK模式
-----------------
* 函数
int cbreak() / int nocbreak()
* 说明
1. CBREAK模式也被成为立即输入模式,在此模式下,除了DELETE或者CTRL等仍然被视为特殊控制字符外,所有的输入字符都被一一立即读取出来.
2. 默认情况下CBREAK模式是打开的
3. 在旧版本的curses中,必须使用crmode()和nocrmode()取代cbreak()和nocbreak()
2.2.3 NEWLINE模式
------------------
* 函数
int nl() / int nonl()
* 说明
NEWLINE模式决定输入时回车是否为\r\n.输入时\r\n是否和起来作为一个回车键
2.2.4 功能键模式
-----------------
* 函数
int keypad(WINDOW *win,int flag)
* 参数说明
1. win指向需要设置功能键模式的窗口
2. flag为TRUE/FALSE用来指定模式的开启或关闭
* 说明
1. 一般情况下,方向键与功能键这些特殊字符是无法被wgetch()之类的函数读取出来的.开启功能键模式之后,特殊字符会被转化为curses.h内部定义的一些特殊键.
2. curses.h内部定义的特殊键一般以KEY_开头,列表如下
* KEY_MIN curses中定义的最小的键值
* KEY_BREAK break按键
* KEY_DOWN 方向键下
* KEY_UP 方向键上
* KEY_LEFT 方向键左
* KEY_RIGHT 方向键右
* KEY_HOME home键
* KEY_BACKSPACE 退格键
* KEY_F0 功能键F0
* KEY_F(n) 功能键Fn
* KEY_DL 行删除键
* KEY_IL 行插入建
* KEY_DC 字符删除键
* KEY_IC 字符插入键
* KEY_NPAGE 下一页
* KEY_PPAGE 上一页
* KEY_END end键
* KEY_MAX curses定义的最大键值
2.2.5 RAW模式
--------------
* 函数
int raw() / int noraw()
* 说明
* 用户的输入会立即被接受,同时任何特殊字符将不再起作用,取而代之的是产生一个相应的信号
* 如果同时设置CBREAK和RAW模式,仅有RAW模式其作用
2.2.6 延迟模式
---------------
* 函数
int halfdelay(int tenth)
* 参数说明
1. tenth指定半延时的时间间隔,单位是10ms
int nodelay(WINDOW *win,bool bf)
* 参数说明
1. win指向需要设置无延迟模式窗口的指针,bf决定开启或关闭该模式
* 说明
* 半延迟模式与cbrak模式非常类似,所有用户输如立即被接受,但不同点在于如果一段时间内用户没有输入,则输入函数立即返回ERR
* 使用nocbreak()函数可以取消终端的半延时模式
* 无延迟模式主要用来控制终端的字符输入. 它使得终端输入函数由阻塞调用变成非阻塞调用