C++对二进制文件的操作实例

2014-11-24 03:18:34 · 作者: · 浏览: 0

有5个学生的数据,要求:

(1)将它们存放到磁盘文件中;

(2)将磁盘文件中的第1,3,5个学生数据读入程序,并显示出来;

(3)将第三个学生的数据修改后存回磁盘文件中的原有位置;

(4)从磁盘文件读入修改后的5个学生的数据并在屏幕输出。

为了使自己能够看懂程序,先看说明:

istream&read(char *buffer,int len);

ostream&wirte(const*char *buffer,int len);

字符指针buffer指向内存中一段存储空间,len是读写的字节数。

abort函数的作用是退出程序,与exit函数的作用相同。

seekg(位移量,参照位置);以参照位置为基础,将输入指针移动若干字节;

seekp(位移量,参照位置);以参照位置为基础,将输出指针移动若干字节;

参照位置可以是下面三个之一:

ios::beg文件开头

ios::cur指针当前位置

iod::end文件末尾

#include
  
   
#include
   
     #include
    
      #include
     
       using namespace std; struct student { int num; char name[20]; float score; }; int main() { student stud[5]= {1001,"Li",85, 1002,"Fun",97.5, 1003,"Wang",98, 1004,"Tan",76.5, 1005,"Ling",96}; fstream iofile("stud.dat",ios::in|ios::out|ios::binary); //用fstream类定义输入输出二进制文件流对象iofile if(!iofile) { cerr<<"open error!"<
      
       
程序输出结果:

/*
	1003 Wang 98
	1004 Tan 76.5
	1005 Ling 96
	
	1001 Li 85
	1002 Fun 97.5
	1012 qianshou 100
	1004 Tan 76.5
	1005 Ling 96
*/