标题:出现debug error 的问题
只看楼主
yin809
Rank: 1
等 级:新手上路
帖 子:10
专家分:1
注 册:2009-9-4
结帖率:100%
已结贴  问题点数:5 回复次数:11 
出现debug error 的问题
#include<stdio.h>
#include<stdlib.h>
# define N 1
 struct system
{ long num;
char name[20];
char writer[10];
char publisher[20];
long time;
double price;
}book[N];
main()
{   int i;
   
    FILE *fp;
    char *filename="t.dat";
    if((fp=fopen(filename,"wb"))==NULL)    /*检查打开的操作是否出错*/
    { printf("cannot open file\n");       /*输出错误的提示*/
       exit(0);                           /*关闭所有文件,终止程序*/
    }                                    
    for(i=1;i<=N;i++)
   { printf("\t请输入您所需书籍的登陆号:");
    scanf("%ld",&book[i].num);
      printf("\t请输入书名:");
    scanf("%s",book[i].name);
      printf("\t请输入作者:");
    scanf("%s",book[i].writer);
   
      printf("\t请输入出版单位:");
    scanf("%s",book[i].publisher);
      printf("\t请输入出版时间:");
    scanf("%ld",&book[i].time);
      printf("\t请输入该书的价格:");
    scanf("%f",&book[i].price);
    fwrite(&book[i],sizeof(struct system),1,fp);
    }
fclose(fp);
}
这个程序能够调试,但是输入完信息后,就出现了debug error 的一个框框,请帮忙看一下
搜索更多相关主题的帖子: debug 
2009-09-04 09:59
yin809
Rank: 1
等 级:新手上路
帖 子:10
专家分:1
注 册:2009-9-4
得分:0 
怎么没人阿
2009-09-04 10:24
yin809
Rank: 1
等 级:新手上路
帖 子:10
专家分:1
注 册:2009-9-4
得分:0 
怎么没人阿
2009-09-04 10:24
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
得分:0 
在主函数里多申请一个double变量如a,输入的值先给a,再把a的值赋给book[i].price
printf("\t请输入该书的价格:");
scanf("%lf",&a);   /* 这里是%lf,注意。 */
book[i].price=a;
·
for(i=1;i<=N;i++); /* 这里i=1改i=0,i<=N改成i<N,因为你定义的N是1,申明struct system book[1]只有一个元素,即是book[0]. */

努力—前进—变老—退休—入土
2009-09-04 12:28
xiongli181
Rank: 1
等 级:新手上路
帖 子:17
专家分:9
注 册:2009-9-3
得分:0 
晕 文件指针函数
还没看到那里  
2009-09-04 13:22
yin809
Rank: 1
等 级:新手上路
帖 子:10
专家分:1
注 册:2009-9-4
得分:0 
没出现了debug error,可是不能输入价格了!谢谢4楼,还有储存的信息与录入的信息不一样。谢谢

[ 本帖最后由 yin809 于 2009-9-4 13:41 编辑 ]
2009-09-04 13:23
yin809
Rank: 1
等 级:新手上路
帖 子:10
专家分:1
注 册:2009-9-4
得分:0 
这是一个录入功能,将程序运行时写入的信息储存到磁盘中了,可是在储存的文件中的信息与录入的信息不一样,不知道哪个地方不对。请多指教
2009-09-04 13:39
yin809
Rank: 1
等 级:新手上路
帖 子:10
专家分:1
注 册:2009-9-4
得分:0 
回复 8楼 UserYuH
你说的方法我试了,可是还是不一样啊!
#include<stdio.h>
#include<stdlib.h>
# define N 1
 struct system
{ long num;
char name[20];
char writer[10];
char publisher[20];
long time;
double price;
}book[N];
main()
{   int i;
    double a;
    FILE *fp;
   
    if((fp=fopen("t.dat","wb"))==NULL)    /*检查打开的操作是否出错*/
    { printf("cannot open file\n");       /*输出错误的提示*/
       exit(0);                           /*关闭所有文件,终止程序*/
    }                                    
    for(i=0;i<N;i++)
   { printf("\t请输入您所需书籍的登陆号:");
    scanf("%ld",&book[i].num);
      printf("\t请输入书名:");
    scanf("%s",book[i].name);
      printf("\t请输入作者:");
    scanf("%s",book[i].writer);
   
      printf("\t请输入出版单位:");
    scanf("%s",book[i].publisher);
      printf("\t请输入出版时间:");
    scanf("%ld",&book[i].time);
      printf("\t请输入该书的价格:");
    scanf("%lf",&a);
    book[i].price=a;
    fwrite(&book[i],sizeof(struct system),1,fp);
    }
fclose(fp);
if((fp=fopen("t.dat","rb"))==NULL)
{  printf("file open error!\n");
   exit(0);
}
}

[ 本帖最后由 yin809 于 2009-9-4 16:42 编辑 ]
2009-09-04 16:30
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
得分:5 
打开文件会有问题吗?
可以打开,并能正确读取数据。下面是调试成功的,你运行试试。
程序代码:
#include<stdio.h>
#include<stdlib.h>
# define N 1
struct system
{ long num;
char name[20];
char writer[10];
char publisher[20];
long time;
double price;
}book[N];
main()
{   int i;
    double b;
    struct system bk;
    FILE *fp;
    char *filename="t.bat";
    printf("%d\n\n",sizeof(double));
    if((fp=fopen(filename,"wb"))==NULL)    
    { printf("cannot open file\n");       
       exit(0);                           
    }
    for(i=0;i<N;i++)
   {

   printf("\t请输入您所需书籍的登陆号:");
    scanf("%ld",&book[i].num);
      printf("\t请输入书名:");
    scanf("%s",book[i].name);
      printf("\t请输入作者:");
    scanf("%s",book[i].writer);

      printf("\t请输入出版单位:");
    scanf("%s",book[i].publisher);
      printf("\t请输入出版时间:");
    scanf("%ld",&book[i].time);

    printf("\t请输入该书的价格:");
    scanf("%lf",&b);
  book[i].price=b;

    fwrite(&book[i],sizeof(struct system),1,fp);
    }
 fclose(fp);
  if((fp=fopen("t.bat","rb"))==NULL)
    {printf("file open error!\n");
     exit(0);
    }
  fread(&bk,sizeof(struct system),1,fp);
  printf("%ld\n%s\n%s\n%s\n%ld\n%lf\n\n",bk.num,bk.name,bk.writer,
        bk.publisher,bk.time,bk.price);
  fclose(fp);
 }


 

努力—前进—变老—退休—入土
2009-09-04 18:01
yin809
Rank: 1
等 级:新手上路
帖 子:10
专家分:1
注 册:2009-9-4
得分:0 
谢谢你一直以来的帮助,我已经明白了
2009-09-06 08:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-284736-1-1.html




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

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