• <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 旅途 閱讀(678) 評論(0)  編輯 收藏 引用 所屬分類: C/C++

            国产成人精品综合久久久| 欧美成人免费观看久久| 久久国产精品久久精品国产| 久久电影网一区| 亚洲国产精品无码久久九九 | 无码精品久久久久久人妻中字| 久久青青草原精品国产| 久久综合一区二区无码| 亚洲AV日韩AV天堂久久| 中文字幕成人精品久久不卡| 国产毛片欧美毛片久久久 | 亚洲AV日韩精品久久久久久久| 浪潮AV色综合久久天堂| 久久亚洲av无码精品浪潮| 久久99精品久久久久久hb无码| 四虎国产精品成人免费久久| 久久er国产精品免费观看2| 久久国产色av免费看| 久久亚洲高清综合| 久久精品中文字幕一区| 九九久久99综合一区二区| 亚洲国产另类久久久精品小说| 久久强奷乱码老熟女网站| 久久99国产精品成人欧美| 欧美777精品久久久久网| 精品久久久久久无码中文字幕一区| 超级97碰碰碰碰久久久久最新| 久久久久人妻一区精品| 精品国产青草久久久久福利| 久久青青草原国产精品免费 | 狼狼综合久久久久综合网| 亚洲?V乱码久久精品蜜桃| 久久影院午夜理论片无码| 久久久人妻精品无码一区| 久久久久亚洲精品中文字幕| 久久国产精品无码网站| 久久香蕉国产线看观看猫咪?v| 蜜桃麻豆www久久国产精品| 亚洲伊人久久综合中文成人网| 欧美成人免费观看久久| 亚洲精品无码久久久久去q|