C++文件操作-二进制文件

时间:2024-03-15 22:34:20

二进制读写文件,不仅仅可以操作内置的数据类型,甚至可以操作自定义的数据类型。

写文件

//自定义数据类型Person
class Person {
public:
	char name[64];
	int age;
}

void writeFile() {
	//创建流对象
	ofstream ofs;
	//二进制的方式打开文件
	ofs.open("person.txt", ios::out | ios::binary);
	//可以直接创建流对象的同时打开文件
	//ofstream ofs("person.txt", ios::out | ios::binary);
	//写文件
	Person person = { "张三"22};
	ofs.write((const char*)&person, sizeof(person));
	//关闭文件
	ofs.close();
}

写对象二进制的方式,通过文本文件打开,会发现乱码现象。

读文件

void readFile() {
	//创建流对象
	ifstream ifs;
	//打开文件
	ifs.open("test.txt", ios::in | ios::binary);
	//文件是否打开成功
	if(ifs.is_open()){
		//读文件
		Person person;
		ifs.read((char *) &person, sizeof(person));
		//关闭文件
		ifs.close();
		
	}
}

这一章只是对文件操作的一节实践课,C++文件操作fstream仅是对libc中posix接口的二次封装,提供了更友好的操作方式。