1. 程式人生 > >linux 下 curses庫 安裝 和使用

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庫的一些簡單的應用。現在學習要本著學以致用的目的。用多少就學多少,學過了就一定要學好!