• <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語言中顯示漢字

            /*此程序?yàn)榻h字庫頭文件<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)?????? /*在當(dāng)前位置建立漢字字模頭文件??,運(yùn)行后可打開此文件看看*/
            ??????{printf("error not is <hzk.h>"); getch();}
            ??????????s="沒有太大或路徑名內(nèi)足存夠了新建菜單開始錯(cuò)誤找不到文件請(qǐng)輸入數(shù)字符的串鼠標(biāo)光退出保存運(yùn)行:?打能!,"; /*在次添加漢字*/
            ??????????ss=s;
            ??????????len=strlen(s)/2; /*獲得漢字個(gè)數(shù)*/
            ??????????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);?????????? /*讀入一個(gè)字節(jié)*/
            ??????????????????????????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;??/*移到下一個(gè)漢字*/
            ????????????????????}

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

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

            /*顯示漢字函數(shù),S為輸入漢字串可有字符,x,y分別為顯示位置,color為顏色*/
            /*要使用此函數(shù),要包含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)?? /*判斷是否結(jié)束*/
            ???????????????????????????????????? { if(x>623){x=1;y+=18;}/*如果到行末,則換行*/
            ?????????????????????? yy=y;
            ??????????????????for(j=0;j<32;j+=2,yy++)????/*漢字字模的32個(gè)字節(jié),加2是每次打印一行*/
            ?????????????????????? { for(k=0;k<8;k++)??????/*每個(gè)字節(jié)表示8個(gè)點(diǎn)*/
            ????????????{
            ????????????if((hzk_wd[i][j]&mark[k])!=0)/*判斷第一字節(jié)的第K位是否為0*/
            ?????????????? putpixel(x+k,yy,color);/*打印點(diǎn)*/
            ????????????????
            ??????????if((hzk_wd[i][j+1]&mark[k])!=0)/*(j+1)判斷第二字節(jié)的第K位是否為0*/
            ??????????putpixel(x+k+8,yy,color);
            ??????????????????????????????????????????????????????????????????????????????????
            ????????????????????????????????????????????????????????????}
            ??????????????????????????????????????????????}

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

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

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

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

            久久久久国产精品| 国内精品久久久久久久久电影网| 国产精品久久久久久搜索| 亚洲精品高清国产一久久| 久久免费大片| 久久国产欧美日韩精品| 久久久精品久久久久特色影视| 亚洲午夜无码久久久久小说| 7777久久亚洲中文字幕| 青青热久久国产久精品| 9久久9久久精品| 久久精品久久久久观看99水蜜桃| 99久久综合狠狠综合久久| 亚洲精品无码专区久久久 | 青青草原综合久久大伊人| 99re久久精品国产首页2020| 精品人妻伦九区久久AAA片69| 久久国产成人午夜aⅴ影院| 精品人妻久久久久久888| 久久久久久精品免费免费自慰| 国内精品伊人久久久久网站| 久久66热人妻偷产精品9| 亚洲国产欧美国产综合久久| 合区精品久久久中文字幕一区| 亚洲国产二区三区久久| 国产精品美女久久久| 久久国产亚洲精品无码| 热re99久久6国产精品免费| 狠狠色丁香久久婷婷综合_中 | 亚洲欧美日韩精品久久亚洲区 | 天天做夜夜做久久做狠狠| 国产高清国内精品福利99久久| 久久狠狠色狠狠色综合| 久久成人影院精品777| 69国产成人综合久久精品| 久久久久亚洲av无码专区| 婷婷综合久久中文字幕蜜桃三电影| 亚洲欧美日韩久久精品第一区| 亚洲欧洲日产国码无码久久99| 亚洲AV日韩AV永久无码久久| 亚洲人成网亚洲欧洲无码久久 |