C语言的一段程序编译时出现问题,大神们来帮帮忙

structstud*creat(){FILE*fp;fp=fopen("dianjia.txt","wt");if(fp==NULL){printf("error!")... struct stud *creat()
{
FILE *fp;
fp=fopen("dianjia.txt","wt");
if(fp==NULL)
{
printf("error!");
getch();
exit(1);
}
else
{
int max;
printf("please:");
scanf("%d",&max);
struct stud *p1,*p2,*head;
head=p2=(struct stud *)malloc(sizeof(struct stud));
printf("please input:\n");
p1=(struct stud *)malloc(sizeof(struct stud));
scanf("%d %s %s %d-%d-%d %d %f",&p1->num,p1->name,p1->kind,&p1->time.year,&p1->time.month,&p1->time.day,&p1->number,&p1->money);
while(p1->num!=0){
p2->next=p1;
p2=p1;
p1=(struct stud *)malloc(sizeof(struct stud));
scanf("%d,%s,%s,%d-%d-%d,%d,%f",&p1->num,p1->name,p1->kind,&p1->time.year,&p1->time.month,&p1->time.day,&p1->number,&p1->money);
}
p2->next=NULL;
fwrite(*head,sizeof(struct stud),max,fp);
fclose(fp);
fp=fopen("dianjia.txt","rt");
fread(*head,sizeof(struct stud),max,fp);
fclose(fp);
return head;
}
}
编译时候出现问题,在fread和fwrite两行,出现问题,提示如下:

2.c: In function ‘creat’:
2.c:47: error: incompatible type for argument 1 of ‘fwrite’
/usr/include/stdio.h:688: note: expected ‘const void * __restrict__’ but argument is of type ‘struct stud’
2.c:50: error: incompatible type for argument 1 of ‘fread’
/usr/include/stdio.h:682: note: expected ‘void * __restrict__’ but argument is of type ‘struct stud’

新手,看不懂,求大神指教
展开
 我来答
guojingcha
推荐于2017-12-15 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.3万
采纳率:42%
帮助的人:9996万
展开全部
fwrite(*head,sizeof(struct stud),max,fp);
fread(*head,sizeof(struct stud),max,fp);这两条语句错了。
fwrite和fread是文件读写函数,要求里面的第一个蚕食是指向文件的指针。你这里的head是一个指向结构体的指针,所以错了。应该使用你定义的fp指针,这个指向了文件。
追问
那要把这段链表写入这个文件应该怎么修改呢?
匿名用户
2013-06-03
展开全部
完全看不懂啊
你是要修改这个文件?
追问
这是里面的一个函数,在这里面建立了一个链表,我想把这个链表写入这个fp文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式