CLKAB 2016-09-02 06:49 采纳率: 0%
浏览 3360
已结题

将txt文件中的内容输入到结构体中

一运行就闪退,调试的数据都是乱的,小白也不知道哪里错了,求大神看看
#include
#include
#include
struct bookinf
{
int ID;
char bookname[20];
char writer[20];
char company[20];
int year;
int month;
int price;
} ;
typedef struct bookinf bookinf;
int main()
{
int i,num=0;
FILE *fp;
struct bookinf b[100];
struct bookinf tmpData;
fp = fopen("D:\book.txt", "r"); // 打开文件
char buf[1000];

if (!fp) // 判断是否打开成功
{
perror("读取文件失败");
return;
}
while (fgets(buf, 1000, fp)) // fgets循环读取,直到文件最后,才会返回NULL
num++; // 累计行数
fclose(fp);
fp = fopen("D:\book.txt", "r"); // 打开文件
if(fp==NULL)
{
perror("读取文件失败");
return;
}
memset(b,0X0,sizeof(b));
while (fp)
{
fread(&tmpData,sizeof(struct bookinf),1,fp);
if(ferror(fp))
{
fclose(fp);
perror("读文件失败");

}
if(feof(fp))
{
break;
}
b[i]=tmpData;
i++;
}
fclose(fp);
for(i=0;i<6;i++)
{
printf("序号:%d,书名:%s,作者:%s,出版社:%s,日期:%d年%d月,价格:%d",b[i].ID,b[i].bookname,b[i].writer,b[i].company,b[i].year,b[i].month,b[i].price);
}
return 0;
}

  • 写回答

9条回答 默认 最新

  • AlbertS 博客专家认证 2016-09-02 07:08
    关注

    fread(&tmpData,sizeof(struct bookinf),1,fp);
    你这个读入完全没有根据啊,你需要一项一项的读入

    评论

报告相同问题?

悬赏问题

  • ¥15 r语言神经网络自变量重要性分析
  • ¥15 基于双目测规则物体尺寸
  • ¥15 wegame打不开英雄联盟
  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢