C++学习笔记——二进制文件的读写

二进制文件的读写是以字节为单位进行操作的,举例如下:

#include<iostream>
#include<fstream>
#include<string.h> //运行strcpy函数需要此头文件
using namespace std;
class Student{
    
    
	private:
		char Name[10];
		char Class[10];
		char Sex;
		int Age;
	public:
		Student(){
    
    }
		Student(char *Name,char *Class,char sex,int age){
    
    
			strcpy(this->Name,Name);
			strcpy(this->Class,Class);
			Sex=sex;
			Age=age;
		}
		void Showme(){
    
    
			cout<<Name<<'\t'<<Class<<'\t'<<Sex<<'\t'<<Age<<endl;
		}
}; 

int main(){
    
    
	Student stu[3]={
    
    
	Student("张三","材料",'m',27),
	Student("李四","机械",'m',26),
	Student("王五","生物",'f',25)};
	//打开文件
	ofstream file1("test.dat",ios::binary);
	if(!file1) {
    
    
		cout<<"文件打开失败"<<endl;
		return 1;
	}
	//写文件 
	for(int i=0;i<3;i++){
    
    
		file1.write((char *)&stu[i],sizeof(stu[i]));
	}
	file1.close();
	//打开文件
	ifstream file2("test.dat",ios::binary);
	if(!file2) {
    
    
		cout<<"文件打开失败"<<endl;
		return 1;
	}
	//读文件
	Student stu2;
	while(file2){
    
    
		file2.read((char *)&stu2,sizeof(stu2));
		if (file2) stu2.Showme();
	}
	file2.close();
	return 0;
}

运行结果:
张三 材料 m 27
李四 机械 m 26
王五 生物 f 25

猜你喜欢

转载自blog.csdn.net/wxsy024680/article/details/113729988