gcc ncurses打印扩展字符(字形),如char 223

时间:2017-02-15 18:23:26

标签: gcc ncurses extended-ascii

我正在使用ncurses为Raspberry Pi编写终端程序。我想在盒子周围添加一个阴影。我想使用mvaddch()来打印扩展字符,例如char 233(上半部分字符)。 mvaddch()命令的语法是什么?或者还有另一种方法可以实现这一目标吗?

1 个答案:

答案 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手册页中所述。