fread函数问题,求助给位大神

用循环读取文件中数据,代码如下:
while(!feof(pfile))
{
int a=0;
a=fread(&leng,sizeof(int),1,pfile);
printf("%d \n",a);
a=fread(temp->name,sizeof(char),leng,pfile);
printf("%d \n",a);
temp->name[leng]='\0';
a=fread(&leng,sizeof(int),1,pfile);
printf("%d \n",a);
a=fread(temp->first_name,sizeof(char),leng,pfile);
printf("%d \n",a);
temp->first_name[leng]='\0';
a=fread(&temp->phone_number,sizeof(long),1,pfile);
printf("%d \n",a);
printf("%s %s的电话号码为%ld\n",temp->name,temp->first_name,temp->phone_number);
}
求问程序运行后为什么没到文件尾,fread函数就返回0,且没有读取任何数据了?

读取的文件打开了吗,一开始读取出什么内容没