#include<stdio.h>
#include<iostream>
#include<fstream>
#include<string.h>
#include<malloc.h>
#include<conio.h>
typedef struct bookfuns{//书籍信息
float price[10];
int number[5];//馆存数量
}bookfun;/*={};测试*/
typedef struct node
{
bookfuns data;//数据域
struct node * next;//指针域
}ListNode,* LinkList;
LinkList InitList();
LinkList Init();
LinkList Create(LinkList head);//读取文件信息
LinkList InitList()
{
LinkList head=(LinkList)malloc(sizeof(ListNode));//创立头结点
if(head==NULL)
{
printf("空间分配无效!");
exit(-1);//退出程序
}
head->next=NULL;
return head;
}
LinkList Create(LinkList head)
{
bookfuns LM;//接受文件数据
LinkList rear;
rear=head;//尾指针指向头节点head
FILE *fp= fopen("D:\\ok.txt","r");
if(fp==NULL)
{
printf("打开文件失败!\n");
return NULL;
}
else{
while(fscanf(fp,"%f\n%d\n",LM.price,LM.number)!=EOF)//处理到文件尾
{
LinkList s=(LinkList)malloc(sizeof(ListNode));
s->data=LM;
s->next=NULL;
rear->next=s;
rear=s;//尾插法 r指向s
printf("\n\n价格:%f\n馆藏数量: %d\n",LM.price,LM.number);//输出书籍信息
}
printf("\n信息录入成功!\n");
}
fclose(fp);
return head;
}
int main()
{
LinkList head=InitList();
head=Create(head);
}
#include<stdio.h>
#include<iostream>
#include<fstream>
#include<string.h>
#include<malloc.h>
#include<conio.h>
typedef struct bookfuns{//书籍信息
float price[10];
int number[5];//馆存数量
}bookfun;/*={};测试*/
typedef struct node
{
bookfuns data;//数据域
struct node * next;//指针域
}ListNode,* LinkList;
LinkList InitList();
LinkList Init();
LinkList Create(LinkList head);//读取文件信息
LinkList InitList()
{
LinkList head=(LinkList)malloc(sizeof(ListNode));//创立头结点
if(head==NULL)
{
printf("空间分配无效!");
exit(-1);//退出程序
}
head->next=NULL;
return head;
}
LinkList Create(LinkList head)
{
bookfuns LM;//接受文件数据
LinkList rear;
rear=head;//尾指针指向头节点head
FILE *fp= fopen("D:\\ok.txt","r");
if(fp==NULL)
{
printf("打开文件失败!\n");
return NULL;
}
else{
while(fscanf(fp,"%f\n%d\n",LM.price,LM.number)!=EOF)//处理到文件尾
{
LinkList s=(LinkList)malloc(sizeof(ListNode));
s->data=LM;
s->next=NULL;
rear->next=s;
rear=s;//尾插法 r指向s
printf("\n\n价格:%f\n馆藏数量: %d\n",&LM.price,&LM.number);//输出书籍信息
}
printf("\n信息录入成功!\n");
}
fclose(fp);
return head;
}
int main()
{
LinkList head=InitList();
head=Create(head);
}
我帮你修改了一下代码,万望采纳。
(fscanf(fp,"%f\n%d\n",LM.price,LM.number
改为
(fscanf(fp,"%f\n%d\n",&LM.price,&LM.number
scanf基本类型都要取地址
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632