HZ.CPP
资源名称:8 [点击查看]
上传用户:phillytech
上传日期:2007-01-07
资源大小:561k
文件大小:2k
源码类别:

多国语言处理

开发平台:

DOS

  1. #define k ' '
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <stdio.h>
  5. #include <dos.h>
  6. #include <graphics.h>
  7. #include <bios.h>
  8. #define X 100
  9. #define Y 200
  10. int test(unsigned int ,int);
  11. char *getwm()
  12. { char *p,*wm;
  13.   FILE *fp;
  14.   int j,i1,j1;
  15.   long num;
  16.   unsigned char i[3];
  17.   p=(char*)malloc(32*sizeof(char));
  18.   fp=fopen("hzk16","rb++");
  19.   printf ("这是提取汉字字库的程序:n");
  20.   printf ("请输入一个汉字:n");
  21.   if(((i[0]=getch())&0x8080)!=0)
  22.    {i[1]=getch();
  23.    printf ("该汉字的机内码是:%2x,%2xn",i[0],i[1]);
  24.    i[2]='';
  25.    printf ("该汉字是:%sn",i);
  26.    }
  27.    else
  28.     {printf ("该汉字的机内码:%2xn",i[0]);
  29.      printf ("该字符是:%cn",i[0]);
  30.      num=188+i[0]-33;
  31.      goto zf;
  32.      }
  33.      i[0]=i[0]&0x7f;
  34.      i[1]=i[1]&0x7f;
  35.      i[0]=i[0]-0x20;
  36.      i[1]=i[1]-0x20;
  37.      num=(i[0]-1)*94+(i[1]-1);
  38.      zf: if(fp==NULL)
  39.      {printf ("文件打开失败!n");
  40.      exit(0);
  41.      }
  42.   fseek(fp,(32)*num,0);
  43.   fread(wm,32,1,fp);
  44.   fclose(fp);
  45.   return (wm);
  46.   }
  47. int test(unsigned int a,int j)
  48. {
  49. unsigned b ;
  50. b=a;b<<=(j-1);
  51.   if(b&0x80)
  52.   return (1);
  53.   else
  54.   return (0);
  55.   }
  56.   void cls()
  57.   {
  58.   union REGS r;
  59.   r.h.ah=6;r.h.al=0;
  60.   r.h.ch=0;r.h.cl=0;
  61.   r.h.dh=24;r.h.dl=79;r.h.bh=7;
  62.   int86(0x10,&r,&r);
  63.   }
  64. void main(void)
  65. {
  66. int xx=0;
  67. int yy=0;
  68.  int a=9,b=2;
  69.  initgraph(&a,&b,"");
  70.  register i,j;
  71.  char *getwn(),*p;
  72.  p=(char*)malloc(32*sizeof(char));
  73.  p=getwm();
  74.   for (i=0;i<32;i++)
  75.   {
  76.   for (j=1;j<=8;j++)
  77.     if(test(p[i],j)==0)
  78.       printf ("%c%c",k,k);
  79.    else
  80.    printf ("%c%c",'03','03');
  81. {
  82. }
  83.    if ((i+1)%2==0)
  84.     printf ("n");
  85.    }}