?? 在c程序中顯示漢字.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0043)http://www.ugpr.com/jsjks/c/shili/hanzi.htm -->
<HTML><HEAD><TITLE>樂知網絡==>> 計算機考試</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content=樂知網絡,計算機等級考試,軟件水平考試,proe,pro/e,UG,ansys name=keywords><LINK
href="在C程序中顯示漢字.files/style.css" type=text/css rel=stylesheet>
<STYLE>TR {
FONT-SIZE: 12px
}
</STYLE>
<META content="MSHTML 6.00.2800.1276" name=GENERATOR></HEAD>
<BODY style="BACKGROUND-ATTACHMENT: fixed" text=#003300 vLink=#002200
bgColor=#cccccc leftMargin=0 background=在C程序中顯示漢字.files/pic063.jpg topMargin=0>
<SCRIPT language=JavaScript type=text/JavaScript>
<!--
function MM_popupMsg(msg) {
alert(msg);
}
//-->
</SCRIPT>
<TABLE cellSpacing=1 cellPadding=3 width=770 align=center
background=在C程序中顯示漢字.files/top_line.gif border=0>
<TBODY>
<TR align=left>
<TD noWrap><FONT color=#cccccc>
<SCRIPT language=JavaScript>
var day="";
var month="";
var ampm="";
var ampmhour="";
var myweekday="";
var year="";
mydate=new Date();
myweekday=mydate.getDay();
mymonth=mydate.getMonth()+1;
myday= mydate.getDate();
myyear= mydate.getYear();
year=(myyear > 200) ? myyear : 1900 + myyear;
if(myweekday == 0)
weekday=" 星期日 ";
else if(myweekday == 1)
weekday=" 星期一 ";
else if(myweekday == 2)
weekday=" 星期二 ";
else if(myweekday == 3)
weekday=" 星期三 ";
else if(myweekday == 4)
weekday=" 星期四 ";
else if(myweekday == 5)
weekday=" 星期五 ";
else if(myweekday == 6)
weekday=" 星期六 ";
document.write(year+"年"+mymonth+"月"+myday+"日 "+weekday);
</SCRIPT>
</FONT></TD>
<TD noWrap> </TD>
<TD noWrap> </TD>
<TD noWrap> </TD>
<TD noWrap> </TD>
<TD noWrap></TD>
<TD noWrap> </TD>
<TD noWrap></TD>
<TD noWrap> </TD>
<TD noWrap> </TD>
<TD noWrap>
<P align=right></P></TD></TR></TBODY></TABLE>
<TABLE height=76 cellSpacing=0 cellPadding=0 width=770 align=center
background=在C程序中顯示漢字.files/bottom_line.jpg border=0>
<TBODY>
<TR>
<TD>
<DIV align=center>
<TABLE height=62 cellSpacing=0 cellPadding=0 width="99%" bgColor=#ffffff
border=0>
<TBODY>
<TR>
<TD width=231><IMG height=77 src="在C程序中顯示漢字.files/logo1.gif"
width=226 border=0></TD>
<TD align=middle width=456><FONT
color=#0000ff>建議</FONT>:由于本站空間有限,資料不能一次全部上傳,需多次更新資料,為了<BR>你能及時下載最新資料,建議將本站設為首頁,或加入收藏夾。 <BR>
<FONT color=#ff0000>聲明</FONT><FONT
color=#999999>:本站所有軟件和內容都摘錄于互聯網,僅供研究和學習之用。如有侵犯<BR>版權之處請指出,我們查實后會立即刪除。</FONT></TD>
<TD align=middle width=75>
<TABLE cellSpacing=0 cellPadding=1 align=center border=0>
<TBODY>
<TR vAlign=center align=middle>
<TD><IMG height=16 src="在C程序中顯示漢字.files/homepage.gif"
width=16><A
onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.ugpr.com')"
href="http://www.ugpr.com/#"></A></TD>
<TD><A class=date
onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.ugpr.com')"
href="http://www.ugpr.com/#">設為首頁</A></TD></TR>
<TR vAlign=center align=middle>
<TD><IMG height=17 src="在C程序中顯示漢字.files/email.gif" width=16><A
href="mailto:WebMaster@Mesky.Net"></A></TD>
<TD><A href="mailto:abushuaihou@163.com">聯系我們</A></TD></TR>
<TR vAlign=center align=middle>
<TD><IMG height=16 src="在C程序中顯示漢字.files/Favorites.gif"
width=16><A title=樂知網絡
onclick="window.external.addFavorite('http://www.ugpr.com','樂知網絡')"
href="http://www.mesky.net/"></A></TD>
<TD><A title=樂知網絡
onclick="window.external.addFavorite('http://www.ugpr.com','樂知網絡')"
href="http://www.ugpr.com/">加入收藏</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></DIV></TD></TR></TBODY></TABLE>
<TABLE height=30 cellSpacing=0 cellPadding=1 width=770 align=center
background=在C程序中顯示漢字.files/topbg.gif border=0>
<TBODY>
<TR>
<TD class=bottomindex align=middle>
<P align=left><STRONG><FONT color=#cc6600>郵箱快速登陸→</FONT></STRONG>帳號:
<INPUT style="FONT-SIZE: 12px" tabIndex=1 size=14 name=user> 信箱:<SELECT
tabIndex=2 size=1 name=site><OPTION value=""
selected>請選擇信箱</OPTION><OPTION value=21cn.com>@21cn.com</OPTION><OPTION
value=163.net>@163.net</OPTION><OPTION
value=tom.com>@tom.com</OPTION><OPTION
value=163.com>@163.com</OPTION><OPTION
value=vip.163.com>@vip.163.com</OPTION><OPTION
value=sohu.com>@sohu.com搜狐郵箱</OPTION><OPTION
value=263.net>@263.net</OPTION><OPTION
value=sina.com>@sina.com新浪</OPTION><OPTION
value=vip.sina.com>@vip.sina.com新浪VIP</OPTION><OPTION
value=mail.china.com>@mail.china.com</OPTION><OPTION
value=china.com>@china.com</OPTION><OPTION
value=netease.com>@netease.com</OPTION><OPTION
value=yeah.net>@yeah.net</OPTION><OPTION
value=etang.com>@etang.com億唐</OPTION><OPTION
value=fm365.com>@fm365.com</OPTION><OPTION
value=cn.yahoo.com>@yahoo.com.cn</OPTION><OPTION
value=xinhuanet.com>@xinhuanet.com新華網</OPTION></SELECT> 密碼:<INPUT
style="FONT-SIZE: 12px" tabIndex=3 type=password size=13 name=pass> <INPUT style="FONT-SIZE: 12px" onclick="setTimeout('clearpass()',1000)" tabIndex=4 type=submit value=登錄 name=Submit2>
<A href="http://www.hao123.com/mail.htm">申請信箱</A> <A
href="http://ally.263.net/servlet/mailally?id=190"><FONT
color=#ff0000>免費信箱</FONT></A></P></TD></TR></TBODY></TABLE>
<DIV align=center>
<TABLE height=50 cellSpacing=0 width=770 bgColor=#efefef border=0>
<TBODY>
<TR>
<FORM name=form action=Search.asp method=post>
<TD width=768 bgColor=#cc6600><FONT
color=#ffffff>>>計算機考試></FONT><FONT
color=#ffffff>C語言專區</FONT><FONT
color=#ffffff>
|</FONT><A href="http://www.ugpr.com/"><FONT
color=#ffffff>首頁</FONT></A><FONT color=#ffffff> </FONT><FONT
color=#ffffff>|<A href="http://www.ugpr.com/jsjks/c/shili/jsjks.htm">
</A></FONT><A href="http://www.ugpr.com/jsjks/c/shili/jsjks.htm"><FONT
color=#ffffff>計算機考試</FONT></A><FONT color=#ffffff> |<A
href="http://www.ugpr.com/jsjks/c/proe/proe.htm"> </A></FONT><A
href="http://www.ugpr.com/jsjks/c/proe/proe.htm"><FONT
color=#ffffff>Pro/ENGINEER</FONT><FONT color=#ffffff> </FONT></A><FONT
color=#ffffff>| <A
href="http://www.ugpr.com/jsjks/c/ug/ug.htm"></A></FONT><A
href="http://www.ugpr.com/jsjks/c/ug/ug.htm"><FONT
color=#ffffff>Unigraphics</FONT></A><FONT color=#ffffff> | <A
href="http://www.ugpr.com/ansys/ansys.htm"><FONT
color=#ffffff>ANSYS</FONT></A> | </FONT><A
href="http://www.ugpr.com/jsjks/c/shoucang/shoucang.htm"><FONT
color=#ffffff>本站收藏</FONT></A><FONT color=#ffffff> | </FONT><A
href="http://www.ugpr.com/jsjks/c/aboutme/aboutme.htm"><FONT
color=#ffffff>關于站長</FONT></A><FONT color=#ffffff>|</FONT></TD></FORM></TR>
<TR>
<TD width=768 bgColor=#efefef>
<TABLE id=table1 cellSpacing=0 cellPadding=0 width=767 align=center
border=0>
<TBODY>
<TR style="FONT-SIZE: 12px">
<TD style="FONT-SIZE: 12px" vAlign=bottom width=107
bgColor=#008000>
<P> </P>
<P> </P>
<P> </P>
<P> </P>
<P>
<P><B><A href="http://www.ugpr.com/jsjks/c/shili/c.htm"><FONT
color=#ffffff><回上頁</FONT></A></B></P></TD>
<TD style="FONT-SIZE: 12px" vAlign=top width=42>
<P> </P>
<P> </P>
<P> </P></TD>
<TD style="FONT-SIZE: 12px" vAlign=top width=515> <BR>
<TABLE id=table2 height=396 cellSpacing=0 cellPadding=0 width=538
bgColor=#ffffff border=0>
<TBODY>
<TR>
<TD style="FONT-SIZE: 9pt" vAlign=top width=538
rowSpan=2><SPAN lang=EN-US>在C程序中顯示漢字</SPAN>
<P><BR> 在許多C程序設計中,要用到漢字進行提示或人機交互,而現行的Turbo
C集成開發環境不是漢化的,如何編制能顯示漢字的C程序呢? </P>
<P> 下面的方法可以幫你在西文環境下顯示漢字。這種方法是調用中文漢字庫進行漢字顯示。國家標準規定:漢字庫分94個區,每個區有94個漢字(以位作區別),每個漢字在漢字庫中有確定的區和位編號,這就是漢字的區位碼。每個漢字在庫中是以點陣字模形式存儲的,一般采用16×16點陣(32字節)、24×24點陣(72字節),每個點用一個二進制位(0或1)表示,對應在屏幕上顯示出來,就是相應的漢字。
</P>
<P> 由于在中文環境下,輸入的是漢字的內碼,我們必須將之轉換成區位碼,算出偏移量,從字庫中找到對應的漢字,將其字模顯示即可。
</P>
<P> 內碼轉換成區位碼方法如下: </P>
<P> qh=c1-0xa0 wh=c2-0xa0 </P>
<P> 其區位碼就是: </P>
<P> qw=qh*0xff+wh </P>
<P> 該漢字在字庫中離起點的位置是: </P>
<P> offset=(94*(qh-1)+(wh-1))*32L </P>
<P> 程序例: </P>
<P> #include 〈graphics.h〉 </P>
<P> #include 〈stdio.h〉 </P>
<P> #include 〈fcntl.h〉 </P>
<P> #include 〈io.h〉 </P>
<P> #include 〈stdlib.h〉 </P>
<P> #include 〈conio.h〉 </P>
<P> #define ROW 1 //縱坐標放大倍數 </P>
<P> #define COL 2 //橫坐標放大倍數 </P>
<P> void main() </P>
<P> { </P>
<P> int x,y; </P>
<P> char *s=″漢字顯示程序″; </P>
<P> FILE *fp; </P>
<P> char buffer[32]; //buffer用來存儲一個漢字 </P>
<P> register m,n,i,j,k; </P>
<P> unsigned char qh,wh; </P>
<P> unsigned long offset; </P>
<P> int gd=DETECT,gm; //圖形屏幕初始化 </P>
<P> initgraph(&gd,&gm,″ ″); </P>
<P> if ((fp=fopen(″hzk16″,″rb″))==NULL) </P>
<P> //打開漢字庫,該字庫可以在ucdos中找到 </P>
<P> getch(); closegraph(); exit(0); </P>
<P> } </P>
<P> x=20; y=100; //顯示位置設置 </P>
<P> while(*s) </P>
<P> { qh=*(s)-0xa0; //漢字區位碼 </P>
<P> wh=*(s+1)-0xa0; </P>
<P> offset=(94*(qh-1)+(wh-1))*32L; //計算該漢字在字庫中偏移量 </P>
<P> fseek(fp,offset,SEEK_SET); </P>
<P> fread(buffer,32,1,fp); //取出漢字32字節的點陣字模存入buffer中(一個漢字)
</P>
<P> for
(i=0;i〈16;i++) //將32位字節的點陣按位在屏幕上打印出來(1:打印,0:不打印),顯示漢字 </P>
<P> for(n=0;n〈ROW;n++) </P>
<P> for(j=0;j〈2;j++) </P>
<P> for(k=0;k〈8;k++) </P>
<P> for(m=0;m〈COL;m++) </P>
<P> if (((buffer[i*2+j]〉〉(7-k))&0x1)!=NULL) </P>
<P> putpixel(x+8*j*COL+k*COL+m,y+i*ROW+n,GREEN); </P>
<P> s+=2; //因為一個漢字內碼占用兩個字節,所以s必須加2 </P>
<P> x+=30; </P>
<P> } </P>
<P> getch(); </P>
<P> closegraph(); </P>
<P> } </P>
<P> 上述程序在Turbo C
2.0編譯系統下運行成功,它可以將漢字放大顯示,讀者可以將它改成函數用在您的程序中顯示漢字。
</P></TD></TR></TBODY></TABLE>
<P><BR><BR> </P></TD>
<TD style="FONT-SIZE: 12px" vAlign=top width=102
bgColor=#008000> </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></DIV>
<TABLE height=65 cellSpacing=0 cellPadding=0 width=770 align=center
background=在C程序中顯示漢字.files/bottom_line.gif border=0>
<TBODY>
<TR>
<TD height=5> </TD></TR>
<TR>
<TD align=middle>
<SCRIPT src=""></SCRIPT>
<SCRIPT>var tc_user="adu520";var tc_class="2";</SCRIPT>
<SCRIPT src=""></SCRIPT>
<SCRIPT src=""></SCRIPT>
</TD></TR>
<TR>
<TD align=middle>
<DIV align=center><FONT face=Verdana, size=2 sans-serif Helvetica,
Arial,>CopyRight© </FONT><FONT size=2 sans-serif helvetica, arial,>2003
</FONT><A href="http://adu520.yeah.net/"><STRONG><FONT color=#000000
size=2 sans-serif helvetica, arial,>樂知網絡</FONT></STRONG></A><FONT
face=Verdana, size=2 sans-serif Helvetica, Arial,>All Rights
Reserved</FONT></DIV></TD></TR>
<TR>
<TD align=middle>
<DIV align=center>
<P align=center>未經授權禁止復制或建立鏡像。謝謝!</P></DIV></TD></TR></TBODY></TABLE>
<SCRIPT src=""></SCRIPT>
</BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -