linux 下 curses庫 安裝 和使用
curses庫是用來開發簡單圖形介面程式一個庫(也許它的功能不止這些,但是目前我只知道這一個!:)。
Ubuntu下安裝方法:
sudo apt-get install libncurses5-dev
curses的基本用法如下:
1. 包含標頭檔案:curses.h
2. 編譯時應加上鍊接語句-lcurses,如:gcc temp.c -o temp -lcurses
3. 重要的函式:
initscr():在開始curses程式設計之前,必須使用initscr()這個函式來開啟curses模式
endwin():結束curses程式設計時,最後呼叫的一個函式
move(y,x): 將遊標移動至 x,y 的位置.
getyx(win,y,x): 得到目前遊標的位置. (請注意! 是 y,x 而不是&y,&x )
clear() and erase(): 將整個螢幕清除. (請注意配合refresh() 使用)
echochar(ch): 顯示某個字元.
addch(ch): 顯示某個字元.
mvaddch(y,x,ch): 在(x,y) 上顯示某個字元. 相當於呼叫move(y,x);addch(ch);
addstr(str): 顯示一串字串.
mvaddstr(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): 自動畫方框
常用的初始化函式集合:
void initial()
{
initscr(); //開啟curses模式
cbreak(); //開啟cbreak模式,除了 DELETE 或 CTRL 等仍被視為特殊控制字元外一切輸入的字元將立刻被一一讀取
nonl(); //用來決定當輸入資料時, 按下 RETURN 鍵是否被對應為 NEWLINE 字元
noecho(); //echo() and noecho(): 此函式用來控制從鍵盤輸入字元時是否將字元顯示在終端機上
intrflush(stdscr,false);
keypad(stdscr,true); //當開啟 keypad 後, 可以使用鍵盤上的一些特殊字元, 如上下左右>等方向鍵
refresh(); //將做清除螢幕的工作
}
以上是curses庫的一些簡單的應用。現在學習要本著學以致用的目的。用多少就學多少,學過了就一定要學好!