咨询电话:010-82823766

中英文混合输出的程序示例
  • 2008-11-25 10:15:02
  • 发表时间:
  • 浏览次数:
  • 网络
  • 文章来源:
  • 佚名
  • 作者:

注意:可通过此函数来显示英文信息,也可通过此函数来显示中文信息,同时还可以用它来显示中文与英文的混合信息!

程序源码:

#include<stdio.h>
#include<graphics.h>

/* 中英文混合输出函数,使用HZK16,ASC16文件,x,y为显示坐标,s为显示字符串,colour为颜色 */
void puts16(int x,int y,char *s,unsigned char colour){
  register int i,j,k;
  FILE *fpa,*fph;
  char buffera[16],bufferh[32];
  unsigned char qh,wh;
  unsigned long location;

  fpa=fopen("asc16","rb");
  fph=fopen("hzk16","rb");
  while(*s){
    if(*s>0){
      fseek(fpa,(*s)*16,0);
      fread(buffera,1,16,fpa);
      for(i=0;i<16;i++)
        for(j=0;j<8;j++){
          if(((buffera[i]>>(7-j))&0x1)!=NULL)
             putpixel(j+x,i+y,colour);
        }
      s++;
      x+=8;
    }else{
      qh=*s-0xa0;
      wh=*(s+1)-0xa0;
      location=(94*(qh-1)+(wh-1))*32L;
      fseek(fph,location,SEEK_SET);
      fread(bufferh,32,1,fph);
      for(i=0;i<16;i++)
        for(j=0;j<2;j++)
          for(k=0;k<8;k++)
            if(((bufferh[i*2+j]>>(7-k))&0x1)!=NULL)
               putpixel(x+8*j+k,y+i,colour);
      s+=2;
      x+=16;
    }
  }
  fclose(fpa);
  fclose(fph);
}

main(){
  int gd=DETECT,gm;
  initgraph(&gd,&gm,"")

  getch();
  closegraph();
}

top
推荐导读
推荐导读
bottom
top
热门文章
热门文章
bottom