2008
08-21

怎么不能读取两条记录啊,现在只能显示一条,目标文件确实有两条记录


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define status int
struct //记录的结构体
{
 long num;
 char name[10];
 char sex;
 float score;
}stud;
status bfread()
{
 int i;
 FILE *fp;
 if((fp=fopen(“stud.rec”,”rb”))==NULL)//以二进制打开文件
 {
  printf(“fail\n”);
  exit(0);
 }
 while(fread(&stud,sizeof(stud),1,fp));//read文件
 {
  printf(“number: %ld\n”,stud.num);
  printf(“name: %s\n”,stud.name);
  printf(“sex: %c\n”,stud.sex);
  printf(“score: %.2f\n”,stud.score);  
 }
 printf(“\n”);
 fclose(fp);//close file
 return 1;
}


救命啊C》有 2 条评论

  1. sunnyhuang2008 说:

     while(fread(&stud,sizeof(stud),1,fp)==1);//read文件

    改成这样试下..我看是文件没有读到尾..

  2. bowen 说:

    学习了,应该是这样。

留下一个回复