• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            旅途

            如果想飛得高,就該把地平線忘掉

            在C語言中顯示漢字

            /*此程序為建立漢字庫頭文件<hzk.h>*/

            /*此程序要16乘16漢字庫文件<hzk16>*/

            #include"stdio.h"

            main()

            ??{?? int i,j,k;
            ???? int len,qu,wei;
            ??????long int l;
            ??????unsigned char c;
            ????????unsigned??char *s,*ss;
            ??????????FILE*fp,*p;
            ?? if((fp=fopen("hzk.h","w"))==NULL)?????? /*在當前位置建立漢字字模頭文件??,運行后可打開此文件看看*/
            ??????{printf("error not is <hzk.h>"); getch();}
            ??????????s="沒有太大或路徑名內足存夠了新建菜單開始錯誤找不到文件請輸入數字符的串鼠標光退出保存運行:?打能!,"; /*在次添加漢字*/
            ??????????ss=s;
            ??????????len=strlen(s)/2; /*獲得漢字個數*/
            ??????????fprintf(fp,"int hz[%d]={\n",len+1); /*定義特征碼*/
            ??????????i=0;
            ??????ss=s;
            ????while(i<len)
            ??????{l=(long)((*s)*256+(*(s+1)));/*得到特征碼*/

            ??????fprintf(fp,"%u,",l);/*寫入特征碼*/
            ????????????????s+=2;i++;
            ???????? if(i%8==0&&i!=0){fprintf(fp,"\n");}?? /*格式*/

            ????????????????}
            ????????????????l=(long)(*(s+1))*256+(*s);????????????????fprintf(fp,"%u};\n\n",0);
            ???????????? fprintf(fp,"unsigned char hzk_wd[%d][32]={\n",len);/*定義漢字字模*/
            ????????????????
            ??????????????if((p=fopen("HZK16","rb"))==NULL)??/*打開16*16漢字庫*/
            ????????????????{printf("error not is <hzk16>"); getch();}
            ???? s=ss;
            ???? j=0;
            ??????while(1)
            ????????????????{ qu=(*s)-0xa0;wei=(*(s+1))-0xa0;
            ???????????????? l=(long)((qu-1)*94+wei-1);
            ??????????????????l=(long)(l*32);????/*得到位移量*/
            ??
            ????????????????????fseek(p,l,0);
            ????????????????????fprintf(fp,"{");
            ????????????????????for(i=0;i<32;++i) /*寫入漢字字模*/
            ???????????????? {c=fgetc(p);?????????? /*讀入一個字節*/
            ??????????????????????????fprintf(fp,"0x%x,",c);
            ??????????????????????if((i%7 )==0&&i!=0)fprintf(fp,"\n");}
            ??????????????????????????fprintf(fp,"},\n\n");
            ?????????????????????? j++;if(j>=len)break;
            ????????????????????s+=2;??/*移到下一個漢字*/
            ????????????????????}

            ????????????????????fprintf(fp,"\n};\n\n",c);
            ????fclose(fp);
            ????fclose(p);
            ?? }

            ----------------------------------------------------------------------------------------------------------------------

            /*顯示漢字函數,S為輸入漢字串可有字符,x,y分別為顯示位置,color為顏色*/
            /*要使用此函數,要包含hzk.h頭文件,且工作在圖形方式*/
            ?????? print(unsigned char *s,int x,int y,int color)
            ???????? {int i,j,k;
            ????????????int xx,yy;
            ???? long l;
            ???? char c[2];
            ???? unsigned char mark[]={0x80,0x40,0x20,0x10,0x8,0x4,0x2,0x1};/*定義屏蔽碼*/
            ???? c[1]='\0';
            ???? while(*s)
            ??????{ if((*s)>160&&(*s)<255&&(*(s+1))>160&&(*(s+1))<255)/*判斷是否為漢字*/
            ??????????????????{l=(*s)*256+(*(s+1));??/*得到特征碼*/
            ??????????????????????i=0;j=0;
            ??????????????????while(hz[i]!=0)??/*檢索特征碼*/
            ?????????????????? {if(hz[i]==l)
            ?????????????????????????????????????????? {j=0;break;}
            ????????????????????????????????????????++i;}
            ???????????????????????????????? if(hz[i]!=0)?? /*判斷是否結束*/
            ???????????????????????????????????? { if(x>623){x=1;y+=18;}/*如果到行末,則換行*/
            ?????????????????????? yy=y;
            ??????????????????for(j=0;j<32;j+=2,yy++)????/*漢字字模的32個字節,加2是每次打印一行*/
            ?????????????????????? { for(k=0;k<8;k++)??????/*每個字節表示8個點*/
            ????????????{
            ????????????if((hzk_wd[i][j]&mark[k])!=0)/*判斷第一字節的第K位是否為0*/
            ?????????????? putpixel(x+k,yy,color);/*打印點*/
            ????????????????
            ??????????if((hzk_wd[i][j+1]&mark[k])!=0)/*(j+1)判斷第二字節的第K位是否為0*/
            ??????????putpixel(x+k+8,yy,color);
            ??????????????????????????????????????????????????????????????????????????????????
            ????????????????????????????????????????????????????????????}
            ??????????????????????????????????????????????}

            ?????????????????????????????????????????? }
            ???????????????????????????????? s+=2;??x+=17;/*移向下一個字符:S加2---每個漢字2個字節*/
            ??????????????????????????????????????????????/*X加為列加,每個漢字十六列*/????????????
            ??????????????????????????????}

            ??????????????????else?????? /*否則為英文字符*/
            ????????????????????{c[0]=*s;
            ???????????????????? setcolor(color);
            ??????????????????????if(x>630){x=1;y+=18;}
            ??????????????????????outtextxy(x,y+4,c);/*打印字符*/
            ?????????????????????? s++;x+=9;/*移向下一個字符:S加1---每個字符1個字節*/
            ????????????????????????????????/*X加9--每個字符8列*/

            ??????????????????????}
            ?????????????????? }
            ??????????????}???

            posted on 2007-10-12 01:41 旅途 閱讀(697) 評論(0)  編輯 收藏 引用 所屬分類: C/C++

            麻豆亚洲AV永久无码精品久久| 国内精品久久久久| 久久天天躁狠狠躁夜夜不卡| 久久精品亚洲男人的天堂| 色狠狠久久综合网| 99久久国产综合精品麻豆| 久久综合伊人77777| 久久婷婷五月综合97色一本一本| 国产亚洲美女精品久久久久狼| 久久精品国产第一区二区| 亚洲级αV无码毛片久久精品 | 国产香蕉97碰碰久久人人| 伊人久久大香线蕉成人| 色综合久久中文色婷婷| 伊人色综合久久天天人守人婷 | 人人狠狠综合久久88成人| 精品国产综合区久久久久久| 亚洲综合伊人久久综合| 久久久久综合国产欧美一区二区| 国内精品久久久久久99| 99蜜桃臀久久久欧美精品网站 | 欧美午夜A∨大片久久| 欧美午夜精品久久久久免费视| 久久激情五月丁香伊人| 久久久91精品国产一区二区三区 | 一97日本道伊人久久综合影院| www.久久热| av午夜福利一片免费看久久| 国产69精品久久久久9999APGF | 久久久久久久波多野结衣高潮| 久久99精品久久久久久不卡 | 久久久久久国产精品免费无码| 久久综合伊人77777麻豆| 久久五月精品中文字幕| 久久国产乱子伦精品免费午夜| 韩国三级大全久久网站| 九九久久99综合一区二区| 久久国产高清字幕中文| 97精品伊人久久久大香线蕉| 国产 亚洲 欧美 另类 久久| 久久亚洲欧美日本精品|