1. 程式人生 > >不回顯

不回顯

curses庫是由柏克萊大學的Bill Joy及Ken Arnold所開發的。當時開發curses庫的目的是為了解決程式對於不同終端的相容性。curses庫用於處理Linux/UNIX上的游標移動及螢幕顯示問題。考慮到curses庫的複雜性,這裡只是簡單地介紹一下curses庫的使用。需要這方面詳細資訊可以查閱相關資料。

使用curses庫中的函式前,需要進行必要的初始化工作。程式需要使用initscr函式來開啟curses模式,在結束前呼叫endwin函式來關閉curses模式。程式碼如下:

#include <curses.h>

int main(int argc,char* argv[]){

    initscr();

    endwin();

}

在實際使用中,出於方便的目的,往往把一些初始化的動作放置在初始化函式中,以方便呼叫。具體程式碼如下:

void initial()

{

    initscr();

    cbreak();

    nl();

    noecho();

    intrflush(stdscr,FALSE);

    keypad(stdscr,TRUE);

    refresh();

}

程式碼中使用到了一些curses庫的函式,含義如下。

l     cbreak():呼叫cbreak函式後,除了“Del”和“Ctrl”鍵外,接受其他所有字元輸入。

l     nl()/nonl():輸出時,換行是否作為回車字元。nl函式將換行作為回車符,而nonl函式相反。

l     noecho()/echo():關閉/開啟輸入回顯功能。

l     intrflush(WINDOW *win, bool bf):win為標準輸出。當bf為true時輸入Break,可以加快中斷的響應。但是,有可能會造成螢幕輸出資訊的混亂。

l     keypad(WINDOW *win, bool bf):win為標準輸出。呼叫keypad函式後,將可以使用鍵盤上的一些特殊字元,如方向鍵,轉化成curses.h中的特殊鍵。

l     refresh():重繪螢幕顯示內容。在呼叫initscr函式後,第一次呼叫refresh函式會清除螢幕顯示。