hzk16.c

来自「很初级的」· C语言 代码 · 共 55 行

C
55
字号
/*显示中文汉字的源程序.*/

FILE *zk;
int out16hz(int x,int y,int z,int color,char *str)
{   
	char *p=str,s[2]="a";
	unsigned char c1,c2;
	int temcolor;
	int i,j;
	long l;
	
	zk=fopen("hzk16","rb");
	temcolor=getcolor();
	setcolor(color);
	while((*p!='\0')&&(*(p+1)!='\0'))
	{
		if((unsigned char)*p>=0xa1)
		{
			c1=*p++-0xa1;
			c2=*p++-0xa1;
			l=(long)32*(((long)c1*94)+(long)c2);
			fseek(zk,l,SEEK_SET);
			for(i=0;i<16;i++)
			{
				c1=fgetc(zk);c2=fgetc(zk);
				for(j=0;j<8;j++)
				{if (c1&(0x80>>j))putpixel(x+j,y+i,color);
				}
				for(j=0;j<8;j++)
				{
				if(c2&(0x80>>j))putpixel(x+j+8,y+i,color);}
			}
			x+=16+z;
		}
		else
		{	*s=*p++;
		outtextxy(x,y,s);
		x+=8+z/2;
		}
	}
	if(*p!='\0'){
	*s=*p++;
	outtextxy(x,y,s);
	x=x+1;
	}
	setcolor(temcolor);
	return x;
	
	}

void HZdeinit()
{
fclose(zk);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?