中易网

这段用fwrite写入数据的程序哪里错了。。。

答案:1  悬赏:50  
解决时间 2021-03-12 09:55
这不是主函数,只是其中一个功能。
head是定义在全局上的一个结构体指针,指向一个已经在程序中存在的链表的表头。n也是定义过的全局变量,是链表中链节的个数。
int save()
{
FILE *fp;
struct student stu0,*p;
int i,a=0;

stu0.num=n;
p=head;
if(p==NULL)
{printf("无数据需要存储\n");return 0;}
else
{if((fp=fopen("student11.dat","wb+"))==NULL)
return 0;

fwrite(&stu0,sizeof(struct student),1,fp);
for(i=0;i<n;i++)
{if(fwrite(p,sizeof(struct student),1,fp)!=1)
{printf("储存失败\n");fclose(fp);return 0;
}
else{p=p->next;}
}
}

printf("存储成功\n");
fclose(fp);
return 0;
}
本来没有student11.dat这个文件,
运行完之后没有出现student11.dat文件。。说明没有写进去。

最后5分,谢谢大家!
最佳答案
这段代码是可以输出到.dat文件中的。是不是你木有找到这个文件呢?


刚我测试过了,是可以生成.dat文件的:
#include<stdio.h>

struct student{
int num;
int b;
student * next;
}*head;
int save()
{
FILE *fp; 
struct student stu0,*p;
int i,a=0;

stu0.num=1;
p=head;
if(p==NULL)
{printf("无数据需要存储\n");return 0;} 
else 
{if((fp=fopen("student11.dat","wb+"))==NULL)
return 0;

fwrite(&stu0,sizeof(struct student),1,fp);
for(i=0;i<1;i++)
{if(fwrite(p,sizeof(struct student),1,fp)!=1)
{printf("储存失败\n");fclose(fp);return 0; 
}
else{p=p->next;}
}
}

printf("存储成功\n"); 
fclose(fp);
return 0;
}

int main(){
head = new student();
head->num = 1;
head->next = NULL;
save();
return 0;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
冰箱tcl钢化面三开门的多少钱
成年人每天至少要睡几个小时才能保证精神?
一句话英语新闻
仙桃市恒源商砼建材有限公司地址有知道的么?
08年丰田卡罗拉1.6跟02年丰田卡罗拉1.6有什么
极度内向,压抑,沉默,自卑,自闭,孤僻
刚买的32g卡,用了一周突然不好使了,安手机
美奥牙科怎么样
我的口粮田被村里强行做路了,我怎么办
iphone升级完ios7.0为什么简体拼音拼音打不了
石磨豆花家常菜我想知道这个在什么地方
我该去乌鲁木齐还是去克拉玛依?头疼~
NBA2005王朝模式完了过后能不能继续新赛季?
有什么书或者节目可以锻炼人的说话技巧呢?
我给老板打电话让他来接我,老板又让员工来接
推荐资讯
文峰宾馆我想知道这个在什么地方
动植物对风水影响:房子周围适合种什么树木
睡觉是睁着眼睛好还是闭着眼睛好
伍字换部首是什么
我是群管理员,为什么同意别人的加群申请健点
求大神帮看看这配置能带的起CSGO吗?
怀疑女友喜欢上别人了 能直接问她吗
姓氏“四”的读音
吊扇转速低换调速开关可以吗
YB17/YB77(路口)在什么地方啊,我要过去处理
迪斯科化工集团里面上班有没有公积金
福州哪里有卖扭扣?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?