现在要求不是全部读取,而是特定的指定某个字读出,输出在屏幕上
#include <conio.h>
#include <stdio.h>
/*功能:在屏幕以(x,y)为左上角输出color色的s中-英混合字符串*/
void put_chinese(int x,int y,unsigned char *s,int color)
{
unsigned char mat[32],i,j,is_hz,can_put,
unsigned long position;
FILE *fp;
fp=fopen("hzk16","rb");/*打开汉字库文件*/
if (fp==NULL)return;
while(*s!=0) /*开始输出文字循环*/
{
if(*s>0xa0&&*(s+1)>0xa0
{/*若为中文读取中文字模*/
i=*s-0xa0;/*计算区号*/
j=*(s+1)-0xa0;/*计算位号*/
position=(94*(i-1)+(j-1))*32l;/*计算中文字模位置*/
fseek(fp,position,SEEK_SET);/*移动文件指针到字模位置*/
fread(mat,32,1,fp);/*读取为中文字模*/
}
/*开始输出字模了,将读取的中文或英文字模显示*/
for(j=0;j<16;j++)
for(i=0;i<16;i++)
if((0x80>>i%8)&mat[2*j+i/8])/*对于字模相应位为1则输出*/
putpixel(i+x,y+j+(1-is_hz)*4,color);/*将英文字模显示时下移4pixel,这样看起来美观些*/
x+=18;/*中文间距为18pixel*/
s+=2;
}
fclose(fp);
}
void main()
{
put_chinese(100,200,"中文实例",RED);
}