[LINUX]利用Ncursesw編寫支持中文的終端程序

1. Ncursesw庫的安裝與使用 linux

Ncurses庫的安裝(Ubuntu): shell

查看相關軟件包 函數

sudo apt-cache search ncursesw

安裝ncursew必須軟件包 es5

sudo apt-get install libncurses5 libncurses5-dbg libncurses5-dev
使用Ncursesw庫時,須要包含頭文件 ncurses.h,沒錯,頭文件沒有改變。相應地,相關函數的使用也沒有改變。

然而,在編譯源文件時,採用選項-lncursesw替代原用-lncurses。 spa

2. 使程序支持中文字符 code

在調用initscr()函數前,須要首先調用setlocale(LC_ALL,"")設置終端環境。具體請參見 get

man 3 setlocale

在man page中,咱們還能夠知道,爲了使用setlocale這個函數,須要包含頭文件locale.h。 it

若是沒有這個頭文件,可嘗試安裝libicu-dev軟件包。 編譯


演示: class

#include <ncurses.h>
#include <locale.h>

int main(void)
{
  setlocale(LC_ALL,"");
  initscr();
  attron(A_BOLD);
  printw("成功支持中文字符");
  attroff(A_BOLD);
  refresh();
  getch();
  endwin();

  return 0;
}


2014.4.14補充:

在linux系統中,通常都要使用ncursesw庫來實現中文輸出。可是在Mac OS X中,只有ncurses庫,利用上述代碼一樣能夠輸出中文。可是注意:不管使用那種狀況,必須使用setlocale(LC_ALL,""),不然都有可能帶來亂碼!

相關文章
相關標籤/搜索