cpp
#include<iostream>
//1、包含头文件 fstream
#include<fstream>
using namespace std;
class Person
{
public:
char m_Name[64];//姓名
int m_Age;//年龄
};
void test01()
{
//2、创建流对象
ifstream ifs;
//3、打开文件 判断文件是否打开成功
ifs.open("person.txt", ios::in | ios::binary);
if (!ifs.is_open())
{
cout << "文件打开失败了";
return;
}
//4、读文件
Person p;
ifs.read((char*)&p, sizeof(Person));
cout << "姓名:" << p.m_Name << " 年龄:" << p.m_Age << endl;
//5、关闭文件
ifs.close();
}
int main() {
test01();
system("pause");
return 0;
}
test01 函数
cpp
void test01()
{
ifstream ifs; // 创建输入流对象
ifs.open("person.txt", ios::in | ios::binary); // 以二进制读取的方式打开文件 "person.txt"
if (!ifs.is_open())
{
cout << "文件打开失败了" << endl;
return;
}
Person p; // 创建一个 Person 对象 p,用于存储读取的数据
// 从文件中读取一个 Person 对象的数据
ifs.read((char*)&p, sizeof(Person));
// 输出读取到的姓名和年龄
cout << "姓名:" << p.m_Name << " 年龄:" << p.m_Age << endl;
ifs.close(); // 关闭文件流
}
ifstream ifs;:创建一个输入文件流对象ifs。ifs.open("person.txt", ios::in | ios::binary);:以二进制读取的方式打开文件"person.txt"。使用ios::in表示读取操作,ios::binary表示以二进制形式读取文件。if (!ifs.is_open()) { ... }:检查文件是否成功打开,如果未成功打开,则输出错误信息并返回。Person p;:创建一个Person类型的对象p,用于存储从文件中读取的数据。ifs.read((char*)&p, sizeof(Person));:使用read()方法从文件中读取sizeof(Person)字节的数据,并将其存储在p对象中。(char*)&p是将p的地址转换为char*类型,以便read()方法能够将二进制数据直接写入p。cout << "姓名:" << p.m_Name << " 年龄:" << p.m_Age << endl;:输出读取到的Person对象的姓名和年龄。ifs.close();:关闭文件流,确保读取操作完成并释放相关资源。