| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 755 人关注过本帖
标题:帮忙找一下错
只看楼主 加入收藏
ymqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:141
专家分:143
注 册:2010-7-14
结帖率:73.33%
收藏
已结贴  问题点数:20 回复次数:7 
帮忙找一下错
#include <graphics.h>
#define HZKLOD   "f:\\hzk16"
#define BGILOD   "e:\\TCPP30H\\bgi"
#define ASCLOD   "f:\\asc16"
void graphini()
{
 int gd=DETECT,gm;
 registerbgidriver(EGAVGA_driver);
 initgraph(&gd,&gm,BGILOD);

}
void myprintf(int x,int y,char *m,int color)
{
 FILE *fp,*fpa;
 int i,j,k;
 long int fpos; /*具体字在字库中的偏移量*/
 for(i=0;*(m+i)!='\0';i++)
 {
   if(*(m+i)<0)
    {
  if((fp=fopen(HZKLOD,"rb"))==NULL) /*打开16*16点阵汉字字库*/
        {
           printf("Cannot open  hzk16!press any key to quit!");
           getch();
           exit(0);
          }
       else
       {
  unsigned char qh,wh,bitdata[32],bit[8]={128,64,32,16,8,4,2,1};
  int k,j;
          qh=*(m+i)-0xa0; /*汉字区位码*/
          wh=*(m+i+1)-0xa0;
          fpos=(94*(qh-1)+(wh-1))*32L ; /*获得字模在字库中的位置*/
          fseek(fp,fpos,SEEK_SET);
          fread(bitdata,32,1,fp); /*把该汉字字模读入到bitdata中*/
  for(k=0;k<16;k++)
                      for(j=0;j<8;j++) /*和bit[]与操作以后,在屏幕上画点*/
                         {
  if(bitdata[2*k]&bit[j]) putpixel(x+j,k+y,color);
  if(bitdata[2*k+1]&bit[j]) putpixel(x+8+j,k+y,color);
                          }
                         i++;
                        x+=16;
}
    }
     else
         {  char buffera[16];
    if((fpa=fopen(ASCLOD,"rb"))==NULL) /*打开16*16点阵英文字库*/
               {
                  printf("Can't open asc16 !press any key to quit!");
                  getch();
                  exit(0);
                   }
           fpos=(*(m+i))*16;
           fseek(fpa,fpos,SEEK_SET);              /*****查找英文字符在ASC16文件中的位置******/
            fread(buffera,1,16,fpa);            /****读取英文字符在ASC16文件中的字段*******/
            for(k=0;k<16;k++)
                for(j=0;j<8;j++)
                    if(((buffera[k]>>(7-j))&0x1)!=NULL)
                        putpixel(j+x,k+y,color);           /**如果该位非空,则画点***********/
            x+=8;                                    /******屏幕光标偏移量***********************/
        }

    if(x>=getmaxx())
        {  y+=16;
           x=0; }
       }

   fclose(fp);      /*********关闭文件指针*********/
   fclose(fpa);      /*********关闭文件指针*********/
 }

void  main()
{
 graphini();
 myprintf(40,200,"This is 一个中英文混合输出 program!",BLACK);
}
程序运行 总是说   Can't open asc16 !press any key to quit!   可是 我的 asc16 是放在f:\\asc16"  

[ 本帖最后由 ymqq 于 2010-8-19 20:21 编辑 ]
搜索更多相关主题的帖子: include color 汉字 
2010-08-19 11:02
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:10 
#define HZKLOD   "f:  \\hzk16"
#define BGILOD   "e:  \\TCPP30H\\bgi"
#define ASCLOD   "f:  \\asc16"

你中间多这些空格不会影响结果吗?御坂御坂觉得很奇怪

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-08-19 11:07
清风拂晓
Rank: 8Rank: 8
来 自:火星
等 级:蝙蝠侠
威 望:1
帖 子:356
专家分:889
注 册:2010-8-13
收藏
得分:10 
#define HZKLOD   "f:  \\hzk16"
#define BGILOD   "e:  \\TCPP30H\\bgi"
#define ASCLOD   "f:  \\asc16"
这样定义好像错误

清风拂暮(木)
2010-08-19 11:21
ymqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:141
专家分:143
注 册:2010-7-14
收藏
得分:0 
  忘说了  原文是
#define HZKLOD   "f:\\hzk16"
#define BGILOD   "e:\\TCPP30H\\bgi"
#define ASCLOD   "f:\\asc16"

[ 本帖最后由 ymqq 于 2010-8-20 14:15 编辑 ]
2010-08-19 20:20
ymqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:141
专家分:143
注 册:2010-7-14
收藏
得分:0 
另外,
#define HZKLOD   "f:\\hzk16"
#define BGILOD   "e:\\TCPP30H\\bgi"
#define ASCLOD   "f:\\asc16"
这样声明是没有错的!
2010-08-20 14:19
ymqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:141
专家分:143
注 册:2010-7-14
收藏
得分:0 
最终,我找到错误了。修改如下:
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>
#define HZKLOD   "f:\\hzk16"
#define BGILOD   "e:\\TCPP30H\\bgi"
#define ASCLOD   "f:\\asc16"
void graphini()
{
 int gd=DETECT,gm;
 registerbgidriver(EGAVGA_driver);
 initgraph(&gd,&gm,BGILOD);

}
void myprintf(int x,int y,char *m,int color)
{
 FILE *fp,*fpa;
 int i,j,k;
 long int fpos; /*具体字在字库中的偏移量*/
if((fp=fopen(HZKLOD,"rb"))==NULL) /*打开16*16点阵汉字字库*/
        {
           printf("Cannot open  hzk16!press any key to quit!");
           getch();
           exit(0);}
if((fpa=fopen(ASCLOD,"rb"))==NULL) /*打开16*16点阵英文字库*/
               {
                  printf("Can't open asc16 !press any key to quit!");
                  getch();
                  exit(0);
                   }
 for(i=0;*(m+i)!='\0';i++)
 {
   if(*(m+i)<0)
   {

          unsigned char qh,wh,bitdata[32],bit[8]={128,64,32,16,8,4,2,1};
          int k,j;
          qh=*(m+i)-0xa0; /*汉字区位码*/
          wh=*(m+i+1)-0xa0;
          fpos=(94*(qh-1)+(wh-1))*32L ; /*获得字模在字库中的位置*/
          fseek(fp,fpos,SEEK_SET);
          fread(bitdata,32,1,fp); /*把该汉字字模读入到bitdata中*/
          for(k=0;k<16;k++)
                      for(j=0;j<8;j++) /*和bit[]与操作以后,在屏幕上画点*/
                         {
              if(bitdata[2*k]&bit[j]) putpixel(x+j,k+y,color);
              if(bitdata[2*k+1]&bit[j]) putpixel(x+8+j,k+y,color);
                          }
                         i++;
                        x+=16;

    }
     else
         {  char buffera[16];

           fpos=(*(m+i))*16;
           fseek(fpa,fpos,SEEK_SET);              /*****查找英文字符在ASC16文件中的位置******/
            fread(buffera,1,16,fpa);            /****读取英文字符在ASC16文件中的字段*******/
            for(k=0;k<16;k++)
                for(j=0;j<8;j++)
                    if(((buffera[k]>>(7-j))&0x1)!=NULL)
                        putpixel(j+x,k+y,color);           /**如果该位非空,则画点***********/
            x+=8;                                    /******屏幕光标偏移量***********************/
        }

    if(x>=getmaxx())
        {  y+=16;
           x=0; }
       }

   fclose(fp);      /*********关闭文件指针*********/
   fclose(fpa);      /*********关闭文件指针*********/
 }

void  main()
{
 graphini();
 myprintf(40,50,"This is 一个中英文混合输出 program",BLUE);
 getchar();
}
但对错误原因依然不明,期盼高人指点!
2010-08-21 14:02
tangjin19864
Rank: 1
等 级:新手上路
帖 子:7
专家分:4
注 册:2010-5-11
收藏
得分:0 
#include <graphics.h>
是什么文件啦,
我的VC++怎么说C:\Program Files\Microsoft Visual Studio\MyProjects\a1\a1.c(3) : fatal error C1083: Cannot open include file: 'graphics.h': No such file or directory
Error executing cl.exe.
2010-08-22 16:03
ymqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:141
专家分:143
注 册:2010-7-14
收藏
得分:0 
TC下的 图形模式
2010-08-22 21:25
快速回复:帮忙找一下错
数据加载中...
 
   



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

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