C語(yǔ)言輔導(dǎo)-在C程序中顯示漢字_第1頁(yè)
C語(yǔ)言輔導(dǎo)-在C程序中顯示漢字_第2頁(yè)
C語(yǔ)言輔導(dǎo)-在C程序中顯示漢字_第3頁(yè)
C語(yǔ)言輔導(dǎo)-在C程序中顯示漢字_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C語(yǔ)言輔導(dǎo):在C程序中顯示漢字下面的方法可以幫你在西文環(huán)境下顯示漢字。這種方法是調(diào)用中文漢字庫(kù)進(jìn)展?jié)h字顯示。國(guó)家標(biāo)準(zhǔn)規(guī)定:漢字庫(kù)分94個(gè)區(qū),每個(gè)區(qū)有94個(gè)漢字(以位作區(qū)分),每個(gè)漢字在漢字庫(kù)中有確定的區(qū)和位編號(hào),這就是漢字的區(qū)位碼。每個(gè)漢字在庫(kù)中是以點(diǎn)陣字模形式存儲(chǔ)的,一般采納16×16點(diǎn)陣(32字節(jié))、24×24點(diǎn)陣(72字節(jié)),每個(gè)點(diǎn)用一個(gè)二進(jìn)制位(0或1)表示,對(duì)應(yīng)在屏幕上顯示出來(lái),就是相應(yīng)的漢字。

由于在中文環(huán)境下,輸入的是漢字的內(nèi)碼,我們必需將之轉(zhuǎn)換成區(qū)位碼,算出偏移量,從字庫(kù)中找到對(duì)應(yīng)的漢字,將其字模顯示即可。

內(nèi)碼轉(zhuǎn)換成區(qū)位碼方法如下:

qh=c1-0xa0wh=c2-0xa0

其區(qū)位碼就是:

qw=qh*0xff+wh

該漢字在字庫(kù)中離起點(diǎn)的位置是:

offset=(94*(qh-1)+(wh-1))*32L

程序例:

#include〈graphics.h〉

#include〈stdio.h〉

#include〈fcntl.h〉

#include〈io.h〉

#include〈stdlib.h〉

#include〈conio.h〉

#defineROW1//縱坐標(biāo)放大倍數(shù)

#defineCOL2//橫坐標(biāo)放大倍數(shù)

voidmain()

{

intx,y;

char*s=″漢字顯示程序″;

FILE*fp;

charbuffer[32];//buffer用來(lái)存儲(chǔ)一個(gè)漢字

registerm,n,i,j,k;

unsignedcharqh,wh;

unsignedlongoffset;

intgd=DETECT,gm;//圖形屏幕初始化

initgraph(&gd,&gm,″″);

if((fp=fopen(″hzk16″,″rb″))==NULL)//翻開(kāi)漢字庫(kù),該字庫(kù)可以在ucdos中找到

{printf(″Can’topenhaz16,Pleaseaddit″);

getch();closegraph();exit(0);

}

x=20;y=100;//顯示位置設(shè)置

while(*s)

{qh=*(s)-0xa0;//漢字區(qū)位碼

wh=*(s+1)-0xa0;

offset=(94*(qh-1)+(wh-1))*32L;//計(jì)算該漢字在字庫(kù)中偏移量

fseek(fp,offset,SEEK_SET);

fread(buffer,32,1,fp);//取出漢字32字節(jié)的點(diǎn)陣字模存入buffer中(一個(gè)漢字)

for(i=0;i〈16;i++)//將32位字節(jié)的點(diǎn)陣按位在屏幕上打印出來(lái)(1:打印,0:不打印),顯示漢字

for(n=0;n〈ROW;n++)

for(j=0;j〈2;j++)

for(k=0;k〈8;k++)

for(m=0;m〈COL;m++)

if(((buffer[i*2+j]〉〉(7-k))&0x1)!=NULL)

putpixel(x+8*j*COL+k*COL+m,y+i*ROW+n,GREEN);

s+=2;//由于一個(gè)漢字內(nèi)碼占用兩個(gè)字節(jié),所以s必需加2

x+=30;

}

getch();

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論