ncurses 中的线条绘制

den*_*zen 5 macos ncurses extended-ascii osx-snow-leopard

我一整天都在尝试在 ncurses 中绘制简单的线条(例如框),但我无法让它工作。我正在尝试打印像这里找到的扩展 ASCII 字符:http : //www.theasciicode.com.ar/ascii-table-codes/ascii-codes-219.html 我已经看到一些提到 wchar_t,但它显然需要 ncursesw,我不知道如何包含它(我知道它已安装)

我在 OS X 10.6.2 和 GCC 4.2 下使用 XCode。

有任何想法吗?

wal*_*lyk 5

你不需要 wchar_t。“扩展”代码(c. 1985)小于 255。例如,要绘制双线框的左下角,请使用代码 200 十进制、310 八进制 ("\310") 或 0xc8 ("\xc8 ”)。

这些字符需要您正在使用的终端模拟器的支持,但它应该可以正常工作。


编辑
我对旧诅咒的 7 位与 8 位模式有一个模糊的记忆,但我在 FSF ncurses 1.190 (2008/12/20) 中找不到任何提及,也标识为 v5.7.3.20090207我在 Linux 上有。curs_addch手册页提到了画线字符的符号常量,所以也许您应该使用它们而不是文字画线字符:

addch (ACS_ULCORNER);   // upper left corner
for (int j = 0;  j < boxwidth-2;  ++j)
    addch (ACS_HLINE);
addch (ACS_URCORNER);   // upper right
...
Run Code Online (Sandbox Code Playgroud)