| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1295 人关注过本帖
标题:如何在C中显示汉语???
只看楼主 加入收藏
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
收藏
得分:0 
去载一个wintc
选择“超级工具集”->“点阵字模工具”,好好看一下就应当有所收获。

2007-02-27 00:19
amxiaomao
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-11-20
收藏
得分:0 

如何在纯c语言中显示汉字(含源代码)

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <io.h>
/*************************************************************************************
  在许多C程序设计中,要用到汉字进行提示或人机交互,而现行的Turbo C集成开发环境不是汉化的,

如何编制能显示汉字的C程序呢?

  下面的方法可以帮你在西文环境下显示汉字。这种方法是调用中文汉字库进行汉字显示。

国家标准规定:汉字库分94个区,每个区有94个汉字(以位作区别),每个汉字在汉字库中

有确定的区和位编号,这就是汉字的区位码。每个汉字在库中是以点阵字模形式存储的,

一般采用16×16点阵(32字节)、24×24点阵(72字节),每个点用一个二进制位(0或1)

表示,对应在屏幕上显示出来,就是相应的汉字。

  由于在中文环境下,输入的是汉字的内码,我们必须将之转换成区位码,算出偏移量,

从字库中找到对应的汉字,将其字模显示即可。

  内码转换成区位码方法如下:

   qh=c1-0xa0 wh=c2-0xa0

  其区位码就是:

    qw=qh*0xff+wh

  该汉字在字库中离起点的位置是:

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

void main()
{
int x,y ;
char *s="汉字显示程序";
int ROW = 2 ;
int COL = 2 ;
FILE *fp;
char buffer[32];
register m,n,i,j,k;
unsigned char qh , wh ;
unsigned long offset ;
int gd=DETECT,gm;
initgraph(&gd,&gm,"");

if((fp=fopen("HZK16","rb"))==NULL)
{
printf("Can not Open Hzk16,Please add it");
getch();
closegraph();
exit(0);
}
x = 20 ; y = 100 ;
while(*s)
{
qh=*s - 0xaf ; /* 此处-0xaf是因为该处是18030汉字库 ,如果是ucdos字库或者2312字库则用-0xa0 */
wh=*(s + 1) -0xa0 ;
offset=(94 * (qh-1 ) + ( wh - 1 ) ) * 32L ;
fseek(fp,offset,SEEK_SET);
fread(buffer , 32 , 1 , fp ) ;
for( i = 0 ; i < 16 ; i++ )
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 )) & 0x01 ) != NULL )
putpixel(x + 8* j * COL + k * COL + m ,y + i * ROW + n ,GREEN ) ;
s += 2 ;
x += 30 ;
}
getch() ;
getch() ;
getch();
closegraph() ;

}

2007-02-27 16:00
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
请2楼注意:汉化版不能直接输出中文,因为汉化版只是仅仅汉化界面

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-02-28 14:17
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 

我给你个下载地址 你去下载就OK
http://www.bc-cn.net/Soft/kfyy/c/200409/3.html


羊肉串 葡萄干 哈密瓜!!
2007-02-28 15:52
sunnvya
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1094
专家分:0
注 册:2005-11-23
收藏
得分:0 
他C是ASCII编码

http://www. 第二站>>>提供源码下载
2007-02-28 16:07
ppm88
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1414
专家分:30
注 册:2007-1-28
收藏
得分:0 
TC2.0 也行哇,但需挂接汉字系统比如天汇、UCDOS、CCDOS等

winTC直接在WINDOWS下运行省事方便
2007-02-28 16:56
lbzgs
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-1-17
收藏
得分:0 

请教字模的安装方法,我试了好多次,都没弄好

2007-03-19 15:44
lbzgs
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-1-17
收藏
得分:0 
谢谢楼上的各位兄弟,虽然我还是没能显示出来汉字,但是我知道我差在哪儿了。我得去补习基础知识了。。。谢谢
2007-03-31 21:39
快速回复:如何在C中显示汉语???
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015800 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved