无法载入文件 怎么回事

qaz0825 2010-12-13 03:02:32
void load()
{
FILE *fp;
Node *p,*head;
head=(Node*)malloc (sizeof(Node));
p=head;

if((fp=fopen("test.txt","r"))==NULL)
{
printf("cannot open file\n");
exit(0);
}

while(fscanf(fp,"%-12s%s\t%s\t%d\t%d\t%d\t%d\n",p->data.num,p->data.name,p->data.sex,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.ave)!=-1)



fclose(fp);
}
上面是载入的代码 下面是保存的代码
void savedata()
{
FILE *fp;
Node *p;
p=head;
if((fp=fopen("test.txt","w"))==NULL)
{
printf("can not open file\n");
return;
}
while(p)
{
fprintf(fp,"%-12s%s\t%s\t%d\t%d\t%d\t%d\n",p->data.num,p->data.name,p->data.sex,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.ave);
p=p->next;
}
fclose(fp);
}
...全文
248 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qaz0825 2010-12-14
  • 打赏
  • 举报
回复
有高手没嘛。。 还不能解决
qaz0825 2010-12-13
  • 打赏
  • 举报
回复
求高手回答 或者留个QQ联系 我给全代码看看是什么原因
qaz0825 2010-12-13
  • 打赏
  • 举报
回复
不是这个原因。。。
}
羽飞 2010-12-13
  • 打赏
  • 举报
回复
\t不用加吧,写个空格就可以了,fscanf会识别分隔符
qaz0825 2010-12-13
  • 打赏
  • 举报
回复
求高手回答
qaz0825 2010-12-13
  • 打赏
  • 举报
回复
还是不行哎。。。 fprintf(fp,"%s\n%s\n%s\n%d\n%d\n%d\n%d\n",p->data.num,p->data.name,p->data.sex,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.ave);
保存文件代码我这样修改了。。 然后fscanf(fp,"%-12s%s\t%s\t%d\t%d\t%d\t%d\n",&(p->data.num),&(p->data.name),&(p->data.sex),&(p->data.egrade),
&(p->data.mgrade),&(p->data.cgrade),&(p->data.ave)这个也这么修改 还是不行
就想叫yoko 2010-12-13
  • 打赏
  • 举报
回复
++[Quote=引用 2 楼 luciferisnotsatan 的回复:]
&(p->data.num) 加个(),清楚些
[/Quote]
luciferisnotsatan 2010-12-13
  • 打赏
  • 举报
回复
&(p->data.num) 加个(),清楚些
luciferisnotsatan 2010-12-13
  • 打赏
  • 举报
回复
&p->data.num
fscanf要传的是地址。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧