curses中與鍵盤相關的互動功能(curses筆記四)
阿新 • • 發佈:2018-12-13
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);
}
執行結果不貼了,感覺互動的部分還是要自己一個個試過去。