我需要使用-lncursesw打印出unicode字符,否则它不会工作但是用它编译之后,用户输入的窗口会出现但是当我输入字符时,它不会显示但仍能输入。老实说,我不知道如何做这项工作,我已经用setlocale设置了语言环境(LC_ALL,"");
这是输入代码:
while ((ch = getch()) != KEY_F(9))
driver(ch);
和用于处理输入的示例代码(使用switch case)这是默认值:
default:
form_driver(commandForm, ch);
showGrid();
wrefresh(mainScreen);
break;
这就是它的样子,第一张图片使用-lncursesw,第二张图片使用-lncurses。
答案 0 :(得分:0)
您正在使用功能
form_driver(commandForm, ch);
不会处理宽字符。此外,getch
无法处理宽字符(提示:尝试选择/粘贴屏幕截图中显示的双线框字符到输入字段中)。
如果您打算处理Unicode(宽字符),则应使用get_wch
。也,
ncurses有一个备用函数form_driver_w
(当然在 ncursesw 库中)可能有助于解决你的问题。
答案 1 :(得分:0)
使用-lformw而不是使用-lform。