结构体初始化问题,想要存入结构体中的数据写在了txt文件中,这样写可以实现初始化吗

//定义结构体//
struct achievement
{int number;
char name[20];
char sex;
float achievement1,achievement2,achievement3;
}tab_achievement[N];

//读出文件函数//
void read()

{FILE *fp;
int i,n;
if((fp=fopen("C:\Users\Administrator\Desktop\ab.txt","rb"))==NULL) //如果不能打开文件
{printf("cannot open file\n");
exit(0); //使程序终止
}

for(i=0;i<n;i++)
{fread(&tab_achievement[i],sizeof(struct achievement),1,fp); //从fp指向的文件读入一组数据
}
fclose(fp); //关闭文件
}

应该可以,但你的文件中保存的数据也必须是按格式与大小写入的。否则,读到的数据会是错的!
还有一个方法,直接读取结构体数据,不有一个个结构体来读取:
fread(&tab_achievement[0],sizeof(struct achievement),n,fp);

如果你的txt里面是按2进制形式,并且是按照achievement的字节对齐的格式, 存储的数据, 就可以这样读