c语言读写文件的问题
请先浏览下面两个函数,一个读取文件信息函数,一个是写入文件的函数/*读取文件内容的函数*/
void load(void)
{FILE *fp;
head=NULL;
link *sta;
if((fp=fopen("persondat.txt","r"))==NULL)
{printf("打开文件错误“);
exit(0);
}
while(!feof(fp)) //判断是否到达文件结尾
{
fscanf(fp,"%d%s%s%s%s%s%f",&per.number,per.name,per.pasword,per.birthday,per.tel,per.address,&per.money); //读取一行数据,然后赋值
if(head==NULL) //创建链表
{ head=(link*)malloc(sizeof(link));
head->ner=per;
head->p=NULL;
current=head;
}
else{
sta=(link*)malloc(sizeof(link));
sta->ner=per;
sta->p=NULL;
current->p=sta;
}
}
fclose(fp);
}
/*写入文件的函数*/
void exct(void)
{FILE *fp;
if((fp=fopen("persondat.txt","w"))==NULL)
{printf("Fail to open the file!!!\n");
exit(0);
}
current=head;
while(current!=NULL)
{fprintf(fp,"%d %s %s %s %s %s %d\n",current->ner.number,current->ner.name,current->ner.pasword,current->ner.birthday,current->ner.tel,current->ner.address,current->ner.money); //将信息写入文件,每个结点占一行
current=current->p;
}
fclose(fp);
printf("\nPlease press any key to exit!!!\n");
getchar()
1.这两个函数是对同一个文件进行操作的,读文件时文件的最后一行为什么都会被读两次呢?
2.feof函数是如何判断文件是否到达结尾的呢?
3.用"r"打开一个空文件,当再写入文件时,为什么文件开头都会多出来000000.0000呢?
只要知道一点的都可以指点一下,谢谢了