首页 新闻 会员 周边

C fread()的时候怎样判断文件结束

0
悬赏园豆:15 [已解决问题] 解决于 2012-09-17 12:57

我通过追加的方式往文件里写一个结构体。但是在读出文件并打印的屏幕上的时候遇到的困难,不知道处理。代码参考如下。

View Code
#include<stdio.h>
#include<stdlib.h>
#include<stdio.h>
#define URL "data" //二进制内容写在当前目录下的 data文件 
#define SIZE 3

struct man_tppe
{
       char name[20];
       int age;
}aman,men[SIZE]

void saveone()
{
     FILE *fp;
     if((fp = fopen(URL,"awb"))==NULL) //追加写
     {
            printf("can not open file\n");
            return;
     }
     if(fwrite(&aman,sizeof(struct man_tppe),1,fp)!=1)
         printf("file write error!\n");
     fclose(fp);
} 

void input()
{
    printf("输入一个人的名字 和 年龄\n");
    scanf("%s%d",aman.name,&aman.age);
}

void load()
{

     FILE *fp;
     if((fp = fopen(URL,"rb"))==NULL) //读文件
     {
            printf("can not read file\n");
            return;
     }
//往下不会写了
     fread(&aman,sizeof(struct man_tppe),1,fp);

     fclose(fp);
}

void output()
{
    
}
C
仰望星空的耕田人的主页 仰望星空的耕田人 | 初学一级 | 园豆:6
提问于:2012-08-30 16:05
< >
分享
最佳答案
1

feof

或者每次写记录前先一个要写的记录个数,这样读的时候先读出个数,再循环读记录

收获园豆:15
2012 | 高人七级 |园豆:21230 | 2012-08-30 17:10

专门写文件的记录方法我已经会了。我想知道feof的具体用法。

while(feof(fp)!=0)

读文件

还是不成功。

仰望星空的耕田人 | 园豆:6 (初学一级) | 2012-08-30 17:17

@李公子: 返回值判断不对吧,while (!feof(pFile))  参考

http://www.cplusplus.com/reference/clibrary/cstdio/feof/

2012 | 园豆:21230 (高人七级) | 2012-08-31 08:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册