C语言显示USDOS汉字库
http://www.cnblogs.com/hoodlum1980/articles/1079944.html

C语言读取HZK16
/**
* hzk汉字点阵,感谢高金山网友无私分享
*
* 整理: http://jdgcs.org/
* 技术细节:http://jdgcs.org/HZK16
* jdgcs.org
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned char incode="我"; // 要读出的汉字,GB编码
unsigned char qh = 0, wh = 0;
unsigned long offset = 0;
char mat = {0};
FILE *HZK = 0;
int i,j,k;
//每个汉字,占两个字节, 取其区位号
qh = incode - 0xa0; //获得区码
wh = incode - 0xa0; //获得位码
offset = (94*(qh-1)+(wh-1]]*32; //得到偏移位置
if] == NULL)
{
printf("Can't Open hzk16\n");
getchar();
return 0;
}
fseek(HZK, offset, SEEK_SET);
fread(mat, 32, 1, HZK);
fclose(HZK);
//显示
for(i=0; i<16; i++)
{
for(j=0; j<2; j++)
{
for(k=0; k<8; k++)
{
if(mat & (0x80>>k]]
{//测试为1的位则显示
printf("%c",'#');
}
else
{
printf("%c",'-');
}
}
}
printf("\n");
}
getchar();
return 1;
}
{CODE}
{CODE(caption="C语言读取HZK16,参考版",wrap="1",colors="c")}
//hzk汉字点阵,感谢hfhrman网友无私分享
//http://jdgcs.org 整理发布
int i,j,k;
unsigned char incode="我"; // 要读出的汉字
unsigned char qh,wh;
unsigned long offset;
// 占两个字节, 取其区位号
qh = incode - 0xa0;/ /获得区码
wh = incode - 0xa0; / /获得位码
offset = (94*(qh-1)+(wh-1]]*32; / *得到偏移位置* /
FILE *HZK;
char mat;
if] == NULL)
{
printf("Can't Open hzk16\n");
exit(0);
}
fseek(HZK, offset, SEEK_SET);
fread(mat, 32, 1, HZK);
//显示
for(j=0;j<16;j++)
for(i=0;i<2;i++)
for(k=0;k<8;k++)
if(mat&(0x80>>k]] /*测试为1的位则显示*/
{
printf("%s",'#');
}else{ printf("%s",'-');
}
fclose(HZK);
fclose(fp);
[ Last edited by zzz19760225 on 2016-12-11 at 22:39 ]
http://www.cnblogs.com/hoodlum1980/articles/1079944.html

C语言读取HZK16
/**
* hzk汉字点阵,感谢高金山网友无私分享
*
* 整理: http://jdgcs.org/
* 技术细节:http://jdgcs.org/HZK16
* jdgcs.org
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned char incode="我"; // 要读出的汉字,GB编码
unsigned char qh = 0, wh = 0;
unsigned long offset = 0;
char mat = {0};
FILE *HZK = 0;
int i,j,k;
//每个汉字,占两个字节, 取其区位号
qh = incode - 0xa0; //获得区码
wh = incode - 0xa0; //获得位码
offset = (94*(qh-1)+(wh-1]]*32; //得到偏移位置
if] == NULL)
{
printf("Can't Open hzk16\n");
getchar();
return 0;
}
fseek(HZK, offset, SEEK_SET);
fread(mat, 32, 1, HZK);
fclose(HZK);
//显示
for(i=0; i<16; i++)
{
for(j=0; j<2; j++)
{
for(k=0; k<8; k++)
{
if(mat & (0x80>>k]]
{//测试为1的位则显示
printf("%c",'#');
}
else
{
printf("%c",'-');
}
}
}
printf("\n");
}
getchar();
return 1;
}
{CODE}
{CODE(caption="C语言读取HZK16,参考版",wrap="1",colors="c")}
//hzk汉字点阵,感谢hfhrman网友无私分享
//http://jdgcs.org 整理发布
int i,j,k;
unsigned char incode="我"; // 要读出的汉字
unsigned char qh,wh;
unsigned long offset;
// 占两个字节, 取其区位号
qh = incode - 0xa0;/ /获得区码
wh = incode - 0xa0; / /获得位码
offset = (94*(qh-1)+(wh-1]]*32; / *得到偏移位置* /
FILE *HZK;
char mat;
if] == NULL)
{
printf("Can't Open hzk16\n");
exit(0);
}
fseek(HZK, offset, SEEK_SET);
fread(mat, 32, 1, HZK);
//显示
for(j=0;j<16;j++)
for(i=0;i<2;i++)
for(k=0;k<8;k++)
if(mat&(0x80>>k]] /*测试为1的位则显示*/
{
printf("%s",'#');
}else{ printf("%s",'-');
}
fclose(HZK);
fclose(fp);
[ Last edited by zzz19760225 on 2016-12-11 at 22:39 ]
1<词>,2,3/段\,4{节},5(章)。
