关于文件指针定位问题
#include <stdio.h>#include<stdlib.h>
#include<memory.h>
struct student_info
{
char no[9];
char name[10];
char sex;
int age;
char depart[10];
}stu[3]={{"0001","wangfei",'M',19,"Computer"},{"0002","Daved",'F',18,"Math"},{"0003","baker",'M',22,"Computer"}};
void main()
{
int i;
FILE *fp;
if((fp=fopen("C:\\Users\\bug\\Desktop\\Debug\\stu.dat","wb"))==NULL)//二进制打开创建一个文件
{
printf("cannot great format.txt\n");
exit(0);
}
fwrite(stu,sizeof(struct student_info),3,fp); //将学生信息写入文件fp
rewind(fp); //将文件位置指针置回到文件头
memset(stu,0,3*sizeof(struct student_info)); //清除学生信息
for(i=0;i<3;i+=2) //读第1个和第3个学生信息到结构数组到结构数组stu中
{
fseek(fp,i*sizeof(struct student_info),SEEK_SET); //文件位置指针定位
fread(&stu[i],sizeof(struct student_info),1,fp); //读取1个学生的信息
printf("%12s%10s%3c%3d%10s\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].age,stu[i].depart);
}
fclose(fp);//关闭文件
}