介紹#
GNU ncurses 是在 Unix、Linux 和其他操作系統下控制寫入控制台屏幕的軟體 API,可以使用 ncurses 庫在 Linux 或類 Unix 系統上創建基於文本的使用者介面(TUI)。
ncurses (new curses) 是一套編程庫,它提供了一系列的函數以方便使用者調用它們去生成基於文本的使用者介面。
其實我們對 ncurses 本身並不陌生,以下幾款大名鼎鼎的軟體都用到過 ncurses:
- vim
- emacs
- lynx
- screen
- ……
安裝與使用#
以 Ubuntu 22.04 為例
sudo apt-get install libncurses5-dev
安裝完成後,我們使用如下程式碼來測試一下是否安裝成功
#include <string.h>
#include <ncurses.h>
int main(int argc, char* argv[]) {
initscr();
raw();
noecho();
curs_set(0);
char* s = "Hello, Liu Yuhe!";
// 在屏幕的中央打印字符串
mvprintw(LINES / 2, (COLS - strlen(s)) / 2, "%s", s);
refresh();
getch();
endwin();
return 0;
}
gcc test.c -o test -lncurses