1. 程式人生 > >curses中與鍵盤相關的互動功能(curses筆記四)

curses中與鍵盤相關的互動功能(curses筆記四)

curses中與鍵盤相關的互動功能

  與鍵盤相關的功能主要就是通過鍵盤進行輸入,關於鍵盤輸入的函式主要有如下幾個:

函式 描述
int getch(void) 類似與getchar,用於讀取單個字元。
int getstr(char *string) 用於讀取字串。
int getnstr(char *string, int number_of_characters); 用於讀取字串,但對讀取的長度增加了限制。
int scanw(char *format, …) 以類似於scanf的格式化形式進行輸入

  除了上面這些用於輸入的函式,還有一些可以用於設定鍵盤模式的函式:

函式 描述
int echo(void) 開啟輸入字元的回顯功能
int noecho(void) 關閉輸入字元的回顯功能
int cbreak(void) 關閉快取功能,即輸入的字元會被立即傳給程式,這也意味著組合鍵在這種模式下是無效的
int nocbreak(void) 開啟快取功能,即輸入的字元先快取起來最後按回車以行的形式傳給程式。
int raw(void) 關閉特殊字元處理
int noraw(void) 恢復特殊字元處理和快取功能

程式碼示例:

#include <unistd.h>
#include <stdlib.h>
#include <curses.h> #define MAXSIZE 1024 int main(int argc, char **argv) { char str[MAXSIZE]; WINDOW *screen = initscr(); box(screen, ACS_VLINE, ACS_HLINE); move(5, 5); refresh(); //noecho(); getstr(str); move(6, 5); printw("%s", str); refresh()
; sleep(8); endwin(); exit(EXIT_SUCCESS); }

執行結果不貼了,感覺互動的部分還是要自己一個個試過去。