语言用fread读取文件中的数据到结构体中在输出时没有结果是怎么回事?
struct student
{
char no[10];
char name[10];
char dz[15];
int tel;
};
int main{
struct student s[30];
FILE *fp;
int n,i=0;
fp=fopen("b.txt","r");
if(fp==NULL)
{
printf("打开文件失败");
return;
}
while(!feof(fp))
{
int size = fread(&s,sizeof(struct student),1,fp);
if(size!= 0)
{
n++;
}
for(i=0;i<n;i++)
{
printf("%s%s%s%d",s[i].no,s[i].name,s[i].dz,s[i].tel);
}
}
return 0;
}
s没看到定义?
而且它是个结构体 你这样fread(&s,sizeof(struct student),1,fp);不对
修改如下,供参考:
#include <stdio.h>
struct student
{
char no[10];
char name[10];
char dz[15];
int tel;
};
int main
{
struct student s[30];
FILE *fp;
int n,i=0;
fp=fopen("b.txt","r");
if(fp==NULL)
{
printf("打开文件失败.\n");
return 1; //return; 修改
}
while(i < 30) //while(!feof(fp)) 修改
{
int size = fread(&s[i],sizeof(struct student),1,fp);//修改
if(size != 1) //修改
break;
i++; //n++; //修改
}
for(n=i,i=0;i<n;i++) //修改
{
printf("%s %s %s %d\n",s[i].no,s[i].name,s[i].dz,s[i].tel); //修改
}
//} 修改
return 0;
}