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

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();:关闭文件流,确保读取操作完成并释放相关资源。
相关推荐
默归几秒前
Java云原生时代面临的挑战与变革
java·开发语言·云原生
承渊政道2 分钟前
【优选算法】(实战掌握分治思想的使用方法)
数据结构·c++·笔记·vscode·学习·算法·leetcode
南境十里·墨染春水5 分钟前
C++传记 this指针 及区分静态非静态成员(面向对象)
开发语言·jvm·c++·笔记
揽月凡尘6 分钟前
基于 SWIG 的 C++ Embind 绑定自动化技术说明
开发语言·c++·自动化
Yungoal7 分钟前
C++基础项目结构
数据结构·c++·算法
扶摇接北海17612 分钟前
洛谷:B4477 [语言月赛 202601] 考场安排
数据结构·c++·算法
武藤一雄14 分钟前
C# 中精准锁定类型信息指南:typeof vs GetType()
开发语言·windows·c#·.net·.netcore
IAUTOMOBILE15 分钟前
Qt 入门级开发实践:浅析基于 QTtest 项目的 C++ GUI 编程基础
开发语言·c++·qt
凸头17 分钟前
从聊天机器人到业务执行者:Agentic Orchestration 如何重构 Java 后端体系
java·开发语言·重构
zhuhezhang20 分钟前
一个用golang开发的文本对比工具
开发语言·后端·golang·wails