LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 855|回复: 5

问个ASCII(8)的问题?

[复制链接]
发表于 2004-12-24 15:15:29 | 显示全部楼层 |阅读模式
我想在linux console 下用ncurses库画个下面的图:

const char RussiaDiamonds::bg[21*38+1] =
    "┏━━━━━━━━━━━┓┏━━━━┓"
    "┃■■■■■■■■■■■┃┃        ┃"
    "┃■■■■■■■■■■■┃┃        ┃"
    "┃■■■■■■■■■■■┃┗━━━━┛"
    "┃■■■■■■■■■■■┃            "
    "┃■■■■■■■■■■■┃ 退出= ESC  "
    "┃■■■■■■■■■■■┃            "
    "┃■■■■■■■■■■■┃ 开始=      "
    "┃■■■■■■■■■■■┃ 暂停=      "
    "┃■■■■■■■■■■■┃ 声效=      "
    "┃■■■■■■■■■■■┃ 变形=      "
    "┃■■■■■■■■■■■┃ 左移=      "
    "┃■■■■■■■■■■■┃ 右移=      "
    "┃■■■■■■■■■■■┃ 下移=      "
    "┃■■■■■■■■■■■┃ 落地=      "
    "┃■■■■■■■■■■■┃            "
    "┃■■■■■■■■■■■┃            "
    "┃■■■■■■■■■■■┃ 速度  得分 "
    "┃■■■■■■■■■■■┃┏━━━━┓"
    "┃■■■■■■■■■■■┃┃0  00000┃"
    "┗━━━━━━━━━━━┛┗━━━━┛";


不知道,■ 怎么显示出来? 这是那个字符集里面字符呀?
还有个问题,如果需要切换字符集的话,C语言中用那个函数切换?
发表于 2004-12-24 15:45:59 | 显示全部楼层
从128到159(除了155)在终端上打出来都显示成这样,编个程序把0到255都当字符(%c)打出来看看就知道了。
 楼主| 发表于 2004-12-24 15:56:21 | 显示全部楼层
找不到那些字符呀!!!
1Æ142 ŽÆ143 Æ144 Æ145 ‘Æ146 ’Æ147 “Æ148 ”Æ149 •Æ150 –Æ151 —Æ152 ˜Æ153 ™Æ154 šÆ156 œÆ157
显示的就是这些乱七八糟的字符。


我的源码:

smileonce@^_^:~/src/ascii$ cat asc.c
#include <stdio.h>

int
main(void)
{
                int i;
                for(i=128;i<159;i++)
                        if(i!=155)
                                printf("%i %c%c", i, (char)i, i/8==7?"\n":"\t");
                return 0;
}
smileonce@^_^:~/src/ascii$
发表于 2004-12-24 16:37:34 | 显示全部楼层
不知道呀,我是这样写的:

printf("%c", i);

可能在不同的终端上显示不一样吧。

你把0-255都打出来看看。
发表于 2004-12-24 18:38:48 | 显示全部楼层
char是-127-128,超过了这个范围,输出结果是什么就是没有定义的了,也就是和系统相关。例如我这边就是输出#
 楼主| 发表于 2004-12-24 20:51:22 | 显示全部楼层
我有查了些资料,好像■不是8bit字符,而是16bit的宽字符。但不知道C语言怎么调用特定的宽字符集,且■属于哪个宽字符集的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表