1008文本文件02二进制文件写读操作

213 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第13天,点击查看活动详情

3.二进制写文件的步骤

  • 1.包含头文件
  • 2.创建流对象
  • 3.打开文件 也可以在创建流对象的时候就确定询问的方式。
  • 4.写文件
  • 5.关闭文件

4.代码举例

#include<iostream>
#include <fstream>
#include <string>
using namespace std;



class Sylvia
{
public:
	char S_Name[64];
	int S_Age;
};

//二进制文件  写文件
void h()
{
	//1、包含头文件

	//2、创建输出流对象
	ofstream ofs("h.txt", ios::out | ios::binary);

	//3、打开文件
	//ofs.open("person.txt", ios::out | ios::binary);

	Sylvia S= { "道枝骏佑"  , 20 };

	//4、写文件
	ofs.write((const char *)&S, sizeof(S));

	//5、关闭文件
	ofs.close();
}

int main() {

	h();

	system("pause");

	return 0;
}

1660878911741.png

输出:

请按任意键继续. . .

总结:

  • 文件输出流对象 可以通过write函数,以二进制方式写数据

1.读文件

二进制方式读文件主要利用流对象调用成员函数read

函数原型:istream& read(char *buffer,int len);

参数解释:字符指针buffer指向内存中一段存储空间。len是读写的字节数 步骤:

  • 1.包含头文件
  • 2.创建流对象
  • 3.打开文件 判断文件是否打开成功 也可以在创建流对象的时候就确定询问的方式。
  • 4.读文件
  • 5.关闭文件

2.代码举例

#include<iostream>
#include <fstream>
#include <string>
using namespace std;



class Sylvia
{
public:
	char S_Name[64];
	int S_Age;
};

//二进制文件  写文件
void h()
{
	//1、包含头文件

	//2、创建输出流对象
	ifstream ifs("h.txt", ios::in | ios::binary);

	//3、打开文件
	//ofs.open("person.txt", ios::out | ios::binary);
	if (!ifs.is_open())
	{
		cout << "文件打开失败" << endl;
		return;
	}
	else if (ifs.is_open())
	{
		cout << "文件打开成功" << endl;
	}
	Sylvia h;

	//4、写文件
	ifs.read((char *)&h, sizeof(h));

	cout << "Sylvia的中文名字是:" << h.S_Name << " Sylvia的年龄是: " << h.S_Age << endl;
	//5、关闭文件
	ifs.close();
}

int main() {

	h();

	system("pause");

	return 0;
}

输出:

文件打开成功 Sylvia的中文名字是:道枝骏佑 Sylvia的年龄是: 20 请按任意键继续. . .

结论:

  • 文件输入流对象 可以通过read函数,以二进制方式读数据