如何改变hline/vline输出的字符?

How to change the characters output by hline/vline?

我正在尝试用 hline/vline 在 window 周围创建边框。我想要的输出如下

但是我得到的字母 qm 被用作边框。

到目前为止,这是我的代码:

mvwhline(white_space, 0, 3, ACS_HLINE, 10);

如何使用线条而不是字母? 谢谢!

通常的问题是在不支持该功能的终端上使用 VT100 画线的终端描述。如果问题显示的是完整的程序,那么测试它并查看是否存在其他问题就很简单了。

ncurses 会检查 "linux" 和 "screen",但不会检查所有内容。 PuTTY 是另一个例子,因此 ncurses 提供了一个环境变量来处理这些情况:例如 NCURSES_NO_UTF8_ACS. That feature was added in late 2011 (some very old distributions before ncurses 5.6 可能不起作用)。另请注意,ssh 通常会丢弃不寻常的环境变量,因为(再次以 PuTTY 为例),可能无法在客户端设置连接时预设此变量。

对于支持VT100画线的程序,ncurses可以使用ASCII图形(非字母字符,如|-)按照 waddch 手册页中的说明绘制线条。如果您的语言环境使用 UTF-8 编码,则必须使用 "ncursesw" 库使 ncurses 使用 UTF-8 字符作为 ASCII 图形的替代。