QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1062|回复: 5

提取汉字编码的程序, 高手看看问题在哪里?

[复制链接]
发表于 2005-11-4 16:20:56 | 显示全部楼层 |阅读模式
#include <stdio.h>
#include <sys/stat.h>
#include <unistd.h>
#include <sys/types.h>


int  GetDotArray(char *s, int *a,int n)
{
        //n=32;
        FILE *file;
        int i;
        long off_set;
        file=fopen("Hzk16.dat","r");
        if(file==NULL)
        {
                perror("fopen");
                exit(1);
        }
        off_set=(94 *(s[0]-0xa0-1) +(s[1]-0xa0-1) )*32;
        fseek(file,off_set, SEEK_SET);
        fread(&a[0],32,1,file);
        for(i=0;i<32; i++)
        {
                printf("%d\t",a);
                if( (i+1)%2 ==0 ) printf("\n");
                       
        }
        fclose(file);
       
        return 0;
}

int main()
{
        int a[32];       
        unsigned char *t="嵌";  
        unsigned char *s=t;
        while(*s !=0)
        {
                printf("%5d\t",*s);
                s++;
        }
        printf("\n------------------------------\n");
       
        s="我";
        GetDotArray(s, &a[0],32);
}
//得到的结果怎么是 199     182
------------------------------
0       0
0       0
0       0
0       0
1073790144      895
1       1107797840
1073774719      1073829932
70      1073830456
-1073751744     1073790467
1073830868      1073832832
1       0
1107383425      134513658
1108545272      1108544020
-1073751768     134513465
1108544020      1073792608
-1073751752     134514186
怎么是这样的一组数 , 甚是不解.
发表于 2005-11-4 16:43:27 | 显示全部楼层
提取汉字编码?Hzk16.dat内容是什么?
回复

使用道具 举报

 楼主| 发表于 2005-11-6 17:26:45 | 显示全部楼层
是字库文件啊
回复

使用道具 举报

发表于 2005-11-6 21:08:59 | 显示全部楼层
字库里提取汉字编码?还是汉字点阵?
取点阵最好一个字节一个字节的取,就是那个int *a换成unaigned char *a。
字库一般一位代表点阵的一个点,你打印一个个整形数没什么用啊,应该按位取值吧。
回复

使用道具 举报

发表于 2005-11-6 21:09:22 | 显示全部楼层
你这个字库的结构是怎么样的?
回复

使用道具 举报

 楼主| 发表于 2005-11-7 09:13:41 | 显示全部楼层
谢谢你的提示,  我已经得出正确结果
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-3 04:23 , Processed in 0.099518 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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