资源简介
在DEV C++5.3开发环境下测试通过HZK16,HZK24,HZK32正常读,通过控制台显示出读出来的字库实例,在网上找了很多,很多不能调试通过,花些时间去调试,程序简单,可读性强,这里可以节省大家的时间
代码片段和文件信息
#include
#include
/* run this program using the console pauser or add your own getch system(“pause“) or input loop */
/*
说明 字库文件放在C,D盘根目录下 fopen函数中的目录要改变
szHZK32这个变量在HKZ32.CPP文件中定义, 本次运行环境是dev c++ 5.3环境通过
*/
extern unsigned char szHZK32[];
void Disp_HZK16(vooid)
{
FILE *fp;
char qhwh;
unsigned long offset;
int array[16][16];
char mat[16][2];
char inclode[2] = {“涛“}; // 要读出的字符
int ijk;
char a = 0;
qh = inclode[0] - 0xa0; //区号
wh = inclode[1] - 0xa0; //位号
offset = (94*(qh - 1) +(wh - 1))*32;
printf(“输出的16位汉字,区号,位号\n“);
putchar(inclode[0]);
putchar(inclode[1]);
putchar(‘‘);
printf(“%d%d\n“qhwh);
if((fp = fopen(“c:\\HZK16““rb“)) == NULL)
{
printf(“\ncan not open file strike any key exit“);
getch();
exit(1);
}
fseek(fpoffsetSEEK_SET);
fread(mat321fp);
fclose(fp);
for(i=0; i<16; i++)
{
for(j=0; j<2; j++)
{
for(k=0; k<8; k++)
{
if(mat[i][j] & (0x80>>k))array[i][a+k] = ‘+‘;
else array[i][a+k] = ‘ ‘;
}
a += 8;
}
a = 0;
}
for(i=0; i<16; i++)
{
for(j=0; j<16; j++)
{
printf(“%c“array[i][j]);
}
printf(“\n“);
}
printf(“\n“);
}
void Disp_HZK24(vooid)
{
FILE *fp;
char qhwh;
unsigned long offset;
int array[24][24];
char mat[24][3];
char inclode[2] = {“⑶“}; // 要读出的字符
int ijk;
char a = 0;
qh = inclode[0] - 0xa0; //区号
wh = inclode[1] - 0xa0; //位号
offset = (94*(qh - 1) +(wh - 1))*72;
printf(“输出的24位汉字,区号,位号\n“);
putchar(inclode[0]);
putchar(inclode[1]);
putchar(‘‘);
printf(“%d%d\n“qhwh);
if((fp = fopen(“d:\\HZK24““rb“)) == NULL)
{
printf(“\ncan not open file strike any key exit“);
getch();
exit(1);
}
fseek(fpoffsetSEEK_SET);
fread(mat721fp);
fclose(fp);
for(i=0; i<24; i++)
{
for(j=0; j<3; j++)
{
for(k=0; k<8; k++)
{
if(mat[i][j] & (0x80>>k))array[i][a+k] = ‘+‘;
else array[i][a+k] = ‘ ‘;
}
a += 8;
}
a = 0;
}
for(i=0; i<24; i++)
{
for(j=0; j<24; j++)
{
printf(“%c“array[i][j]);
}
printf(“\n“);
}
printf(“\n“);
}
void Disp_HZK32(void)
{
FILE *fp;
char qhwh;
unsigned long offset;
int array[32][32];
char mat[32][4];
char inclode[2] = {“啊“}; // 要读出的字符
int ijk;
char a = 0;
//inclode[0] = 0xa1;
//inclode[1] = 0xa2;
qh = inclode[0] - 0xa0; //区号
wh = inclode[1] - 0xa0; //位号
offset = (94*(qh - 1) +(wh - 1))*128;
printf(“输出的32位汉字,区号,位号\n“);
putchar(inclode[0]);
putchar(inclode[1]);
putchar(‘‘);
printf(“%d%d\n“qhwh);
if((fp = fopen(“c:\\HZK32““rb“)) == NULL)
{
printf(“\ncan not open file strike any key exit“);
getch();
exit(1);
}
fseek(fpoffsetSEEK_SET);
fread(mat1281fp);
fclose(fp);
for(i=0; i<32; i++)
{
for(j=0; j<4; j++)
{
for(k=0; k<8; k++)
{
if(mat[i][j] & (0x80>>k))array[i][a+k] = ‘+‘;
else array[i][a+
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 261696 2009-03-05 15:36 hzk\HZK\HZK16
文件 588816 2009-03-05 15:35 hzk\HZK\HZK24
文件 1046784 2009-03-05 15:33 hzk\HZK\HZK32
文件 1014 2014-10-10 16:13 hzk\hzk.dev
文件 1098994 2014-10-11 11:23 hzk\hzk.exe
文件 189 2014-10-11 11:30 hzk\hzk.layout
文件 5495651 2014-10-10 16:15 hzk\HZK32.Cpp
文件 1054670 2014-10-10 16:15 hzk\HZK32.o
文件 4388 2014-10-11 11:30 hzk\main.c
文件 19318 2014-10-11 11:23 hzk\main.o
文件 927 2014-10-11 11:23 hzk\Makefile.win
目录 0 2014-10-11 11:31 hzk\HZK
目录 0 2014-10-11 11:31 hzk
----------- --------- ---------- ----- ----
9572447 13
- 上一篇:MX Component Ver4 编程手册
- 下一篇:哈夫曼编码译码器数据结构
评论
共有 条评论