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   

 

转载于:https://www.cnblogs.com/Tobi/p/9251660.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值