C++学习(43)

 1 //随机访问文件
 2 //istream & seekg(<偏移量>,<参照位置>);
 3 //ostream & seekp(<偏移量>,<参照位置>);
 4 //ios::beg 文件开始位置
 5 //ios::cur 当前指针位置
 6 //ios::end 文件结束位置
 7 #include<fstream.h>
 8 
 9 struct student{
10     char name[20];
11     long numbet;
12     int score;
13 };
14 
15 int main(){
16     
17     student stu[3]={{"张三",11,60},{"李四",22,70},{"王五",33,80}};
18     student stu2;
19     char fileName[]="bbb.dat";
20     int n=3;
21 
22     fstream datafile(fileName,ios::in | ios::out | ios::binary);
23     for(int i=0;i<n;i++){
24         datafile.write((char *)&stu[i],sizeof(struct student));
25     }
26     datafile.seekp(1*sizeof(struct student),ios::beg);//指针定位到第二条记录
27     datafile.read((char *)&stu2,sizeof(struct student));//读文件
28     datafile.close();//关闭文件
29 
30     cout<<"姓名"<<stu2.name<<endl;
31     cout<<"学号:"<<stu2.numbet<<endl;
32     cout<<"分数:"<<stu2.score<<endl;
33 
34     return 0;
35 }

 

 

 

bbb.dat文件的内容是

1 张三                   <   李四                   F   王五                !   P   

 

posted on 2018-07-01 22:46  孙悟空son_ku_kong  阅读(116)  评论(0编辑  收藏  举报

导航