我正在使用ncurses为Raspberry Pi编写终端程序。我想在盒子周围添加一个阴影。我想使用mvaddch()
来打印扩展字符,例如char 233(上半部分字符)。 mvaddch()
命令的语法是什么?或者还有另一种方法可以实现这一目标吗?
答案 0 :(得分:1)
你可能指的是像code page 866这样的东西。 ncurses将假设您的终端显示与locale encoding一致的字符,这可能是UTF-8。所以(除非你想转换你的程序中的字符)的方法是使用Unicode值。
Unicode组织具有可用于查找特定代码的表,例如ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP866.TXT。对于您的示例,相关行是
0xdf 0x2580 #UPPER HALF BLOCK
(因为0xdf是223)。您可以在调用函数mvaddwstr时使用Unicode 0x2580
,例如
wchar_t mydata[] = { 0x2580, 0 };
mvaddwstr(0,0, mydata);
(类似名称的wadd_wch
使用更复杂的数据结构。)
您必须链接 ncursesw 库,当然还有initialize your program's locale using setlocale
,如ncurses手册页中所述。