[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,""),不然都有可能带来乱码!

相关文章
相关标签/搜索