在打印数组中使用扩展的ASCII字符

时间:2015-04-06 11:13:43

标签: c ascii dos ncurses extended-ascii

如何使用扩展ASCII字符代替常规字符?

我正在制作一个乒乓球比赛并且当前有|个字符组成了桨,但是我想要ASCII 219(一个实心矩形)来弥补它。到目前为止我的代码是

    char right_paddle_chars[] = {   '|',
                                    '|', 
                                    '|', 
                                    '|',
                                    '|', 
                                    '|',
                                    '|',    };

    paddle_id = create_big_sprite(75, 10, 1, 7, right_paddle_chars);

1 个答案:

答案 0 :(得分:2)

"扩展ASCII"是经常使用的meaningless term。也许您指的是其中一个IBM代码页中的图形,例如850(参见MSDN,其中显示了" Code Page 850 MS-DOS Latin 1")。

但是,如果您使用的是ncurses,则可能在某些非DOS系统(例如Unix,Linux或BSD)上使用它,并且最近的系统使用UTF-8编码。同样,Microsoft记录了Unicode的等价物(参见MSDN)。代码页850的0xdb映射到Unicode 0x2588

使用 ncursesw (宽字符风格),您可以拥有一个wchar_t(宽字符)数组,其中包含您选择的Unicode值,并将其打印为字符串使用addwstr

根据这些信息,您可以看到此问题在此处以不同方式提出:Output “█” with ncursesw in C