主题:文件数据载入链表,出现了问题!求救
#include<stdio.h>
#include<malloc.h>
struct book//图书信息
{
int b_no;
char b_name[20];
char press[20];//出版社
float price;//单价
char borrow;//是否借出
int borrow_no;//借书人编号
struct book *next;
};
struct book *in_book()//载入图书信息
{
char s[1000];
struct book *p,*last,*head;
p=(struct book*) malloc(sizeof(struct book));
FILE *fp;
if((fp=fopen("D://book.txt","r"))!=NULL)
{
fgets(s,1000,fp); //吸收文件第一行表头
if(!feof(fp))
{
fscanf(fp,"%d%s%s%f%c",&p->b_no,p->b_name,p->press,&p->price,&p->borrow);
p->next=NULL;
last=p;
head=p;
while(!feof( fp ))
{
p=(struct book*) malloc(sizeof(struct book));
fscanf(fp,"%d%s%s%f%c",&p->b_no,p->b_name,p->press,&p->price,&p->borrow);
p->next=NULL;
last->next=p;
last=p;
}
}
printf("载入图书信息成功\n");
return head;
}
else
printf("载入图书信息失败\n");
fclose(fp);
}
main()
{
struct book *p;
p=in_book();
}
文件没有语法错误,但运行起来错了!!!
求指教!!
我急用啊!![em10]
book.txt中的东西是:
图书编号 书名 出版社 单价 是否借出
12345678 C语言程序设计 清华大学 38.00 y
12345679 四级词汇 兴界国 25.00 n
12345680 微积分 高等教育 20.00 n
12345681 杜拉拉升职记 中国科技大 20.00 n
问题貌似处在fscanf(fp,"%d%s%s%f%c",&p->b_no,p->b_name,p->press,&p->price,&p->borrow);
中不能用%f,把%f改了就可以了,但我还是要用%f啊!!!
谁来救救我。
#include<malloc.h>
struct book//图书信息
{
int b_no;
char b_name[20];
char press[20];//出版社
float price;//单价
char borrow;//是否借出
int borrow_no;//借书人编号
struct book *next;
};
struct book *in_book()//载入图书信息
{
char s[1000];
struct book *p,*last,*head;
p=(struct book*) malloc(sizeof(struct book));
FILE *fp;
if((fp=fopen("D://book.txt","r"))!=NULL)
{
fgets(s,1000,fp); //吸收文件第一行表头
if(!feof(fp))
{
fscanf(fp,"%d%s%s%f%c",&p->b_no,p->b_name,p->press,&p->price,&p->borrow);
p->next=NULL;
last=p;
head=p;
while(!feof( fp ))
{
p=(struct book*) malloc(sizeof(struct book));
fscanf(fp,"%d%s%s%f%c",&p->b_no,p->b_name,p->press,&p->price,&p->borrow);
p->next=NULL;
last->next=p;
last=p;
}
}
printf("载入图书信息成功\n");
return head;
}
else
printf("载入图书信息失败\n");
fclose(fp);
}
main()
{
struct book *p;
p=in_book();
}
文件没有语法错误,但运行起来错了!!!
求指教!!
我急用啊!![em10]
book.txt中的东西是:
图书编号 书名 出版社 单价 是否借出
12345678 C语言程序设计 清华大学 38.00 y
12345679 四级词汇 兴界国 25.00 n
12345680 微积分 高等教育 20.00 n
12345681 杜拉拉升职记 中国科技大 20.00 n
问题貌似处在fscanf(fp,"%d%s%s%f%c",&p->b_no,p->b_name,p->press,&p->price,&p->borrow);
中不能用%f,把%f改了就可以了,但我还是要用%f啊!!!
谁来救救我。