C语言求助,fread,总是多输出一行数据
用fwrite往文件写入了一组结构体数据,然后用fread读出来是两行,如果我写入了两组数据,那么就是第一组正常输出,第二组输出了两次,什么鬼==这是输出到屏幕的代码wh...
用fwrite往文件写入了一组结构体数据,然后用fread读出来是两行,如果我写入了两组数据,那么就是第一组正常输出,第二组输出了两次,什么鬼= =
这是输出到屏幕的代码
while(!feof(fp))
{
fread(&data,N,1,fp);
printf("%s %s %s %s %s %s\n",data.unit,data.name,data.sex,data.project,data.value,data.date);
}
N是定义的结构体长度,是不是文件标记位置我搞错了?
这是输出到文件的代码
void add()
{
if((fp=fopen("data.dat","ab"))==NULL)
{
printf("数据丢失!!!\n");
exit(0);
}
struct customer data;
scanf("%s%s%s%s%s%s",data.unit,data.name,data.sex,data.project,data.value,data.date);
fwrite(&data,N,1,fp);
fclose(fp);
} 展开
这是输出到屏幕的代码
while(!feof(fp))
{
fread(&data,N,1,fp);
printf("%s %s %s %s %s %s\n",data.unit,data.name,data.sex,data.project,data.value,data.date);
}
N是定义的结构体长度,是不是文件标记位置我搞错了?
这是输出到文件的代码
void add()
{
if((fp=fopen("data.dat","ab"))==NULL)
{
printf("数据丢失!!!\n");
exit(0);
}
struct customer data;
scanf("%s%s%s%s%s%s",data.unit,data.name,data.sex,data.project,data.value,data.date);
fwrite(&data,N,1,fp);
fclose(fp);
} 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询