OS X 10.13.2(高Sierra)。
我正在尝试编写支持宽字符的简单curses程序,但似乎默认(预安装库)的curses不支持宽字符:
最简单的程序示例(来自这里):
#include <ncursesw/ncurses.h>
#include <locale.h>
#include <wchar.h>
int main() {
setlocale(LC_ALL, "");
initscr();
wchar_t wstr[] = { 9474, L'\0' };
mvaddwstr(0, 0, wstr);
refresh();
getch();
endwin();
return 0;
}
无法编译,出现错误:
test.cpp:1:10: 致命错误: 找不到'ncursesw/ncurses.h'文件
尝试在手册页面中查找:
man addwstr 表示:
#include <curses.h>
int addwstr(const wchar_t *wstr);
int addnwstr(const wchar_t *wstr, int n);
int waddwstr(WINDOW *win, const wchar_t *wstr);
int waddnwstr(WINDOW *win, const wchar_t *wstr, int n);
int mvaddwstr(int y, int x, const wchar_t *wstr);
int mvaddnwstr(int y, int x, const wchar_t *wstr, int n);
int mvwaddwstr(WINDOW *win, int y, int x, const wchar_t *wstr);
int mvwaddnwstr(WINDOW *win, int y, int x, const wchar_t *wstr, int n);
根据man页的说法,尝试使用"curses.h"代替"ncursesw/ncurses.h"。再次编译错误:
test.cpp:9:5: error: use of undeclared identifier 'mvaddwstr'; did you mean 'mvaddstr'?
在/usr/include中尝试查找任何与宽字符相关的curses头文件,但没有结果。有什么建议吗?