| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 792 人关注过本帖
标题:[求助]为什么24点阵输出的字不是我输入的字呢?
只看楼主 加入收藏
henryqcy
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-3-24
收藏
 问题点数:0 回复次数:3 
[求助]为什么24点阵输出的字不是我输入的字呢?

下面是我的原函数:
#include<stdio.h>
#include<graphics.h>

FILE *hzk_p;
void open_hzk(void);
void get_hz(char incode[],char bytes[]);
void dishz(int x,int y,char code[],int color);
main()
{
int x=20;
int y=100;
char *s="带综复何如,其路情为了。造化中神秀,因秧歌混淆。当胸生曾云,决自如归鸟。会当凌绝顶,一览众山小。"; /*这些是我要输出的字*/
int driver=DETECT;
int mode=0;
initgraph(&driver,&mode,"");
open_hzk();
while(*s!=NULL){
while(x<600 && (*s!=NULL)){
dishz(x,y,s,YELLOW);
x+=28;
s+=2;
}
x=20;y+=28;
}
getch();
fclose(hzk_p);
closegraph();
}

void open_hzk()
{
hzk_p=fopen("e:/edwin/hzk24k","rb"); /*我要用24点阵楷体*/
if(!hzk_p){
printf("HZK is not exist!\n");
getch();
closegraph();
exit(1);
}
}

void get_hz(char incode[],char bytes[]) /*这个函数用来读取一个incode指向的汉字到bytes[]中*/
{
unsigned char qh,wh;
unsigned long offset;
qh=incode[0]-0xa0;
wh=incode[1]-0xa0;
offset=(94*(qh-1)+wh-1)*72L; /*汉字应该是分成94个区,每个区有94个汉字的吧,然后每个汉字要用72字节表示*/
fseek(hzk_p,offset,SEEK_SET);
fread(bytes,72,1,hzk_p);
}

void dishz(int x0,int y0,char code[],int color) /*这个函数用来显示code指向的字*/
{
unsigned char mask[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};

int i,j,x,y,pos;
char mat[72];
get_hz(code,mat);
x=x0;
for(i=0;i<24;++i){
y=y0;
pos=3*i;
for(j=0;j<24;j++){
if((mask[j%8]&mat[pos+j/8])!=NULL)
putpixel(x,y,color);
++y;
}
++x;
}
}

搜索更多相关主题的帖子: 输出 输入 
2007-04-01 21:36
henryqcy
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-3-24
收藏
得分:0 
但是输出的时候显示的不是我输入的字,是其他的,为什么呢
2007-04-01 21:47
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 
可能是你区位号算错了吧,24点阵的和16点阵的算法有些不同
2007-04-02 11:22
henryqcy
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-3-24
收藏
得分:0 
能不能告诉我是分几区的,每个区有几个字
2007-04-02 14:22
快速回复:[求助]为什么24点阵输出的字不是我输入的字呢?
数据加载中...
 
   



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

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