当前位置: 首页 > java >正文

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

  • 以二进制形式进行文件读写
  • 打开方式需要指定ios::binary

2.1 写二进制文件

使用流对象调用成员函数write实现写二进制文件

  • 函数原型:ostream& write(const char * buffer, int len);
  • 参数解释:字符指针buffer指向一段内存空间,len是读写的字节数

其他步骤顺序与文本文件操作的一致 ,请参考上篇《C++文件操作--1 文本文件操作》https://blog.csdn.net/zx870121209/article/details/147992335?spm=1011.2415.3001.5331

class Person
{
public:char m_name[10];int m_age;
};
​
int main()
{Person p = {"zhangsan", 18}; // 对象初始化
​std::ofstream ofs;// 创建文件流对象ofs.open("test1.txt", std::ios::out|std::ios::binary);// 打开文件ofs.write((const char*)&p, sizeof(p));// 以二进制写入文件,数据类型强转ofs.close();// 关闭文件return 0;
}

2.2 读二进制文件

使用流对象调用成员函数read实现写二进制文件

  • 函数原型:ostream& read(char * buffer, int len);
  • 参数解释:字符指针buffer指向一段内存空间,len是读写的字节数

其他步骤顺序与文本文件操作的一致  ,请参考上篇《C++文件操作--1 文本文件操作》https://blog.csdn.net/zx870121209/article/details/147992335?spm=1011.2415.3001.5331

class Person
{
public:char m_name[10];int m_age;
};
​
int main()
{Person p;
​std::ifstream ifs; // 创建文件流对象ifs.open("test1.txt", std::ios::in|std::ios::binary);if(!ifs.is_open()) // 判断是否打开文件成功{std::cout << "open failed!" << std::endl;}ifs.read((char *)&p, sizeof(p)); // 读取二进制数据,数据类型强转ifs.close();
​std::cout << "姓名:" << p.m_name << std::endl;std::cout << "年龄:" << p.m_age << std::endl;return 0;
​
}

http://www.xdnf.cn/news/6982.html

相关文章:

  • Java零基础学习Day15——面向对象进阶
  • 基于Fashion-MNIST的softmax回归-直接运行
  • dagster的etl实现
  • 硬件工程师笔记——二极管Multisim电路仿真实验汇总
  • 一分钟用 MCP 上线一个 2048 小游戏(CodeBuddy版)
  • 84.评论日记
  • Level2.8蛇与海龟(游戏)
  • 在WSL中的Ubuntu发行版上安装Anaconda、CUDA、CUDNN和TensorRT
  • 校平机:金属板料处理的核心工艺装备​
  • 【软件测试】性能测试 —— 工具篇 LoadRunner 介绍与使用
  • 【HCIA】MUX VLAN
  • 【原创】基于视觉大模型gemma-3-4b实现短视频自动识别内容并生成解说文案
  • 从零开发 1688 数据接口:商品详情页实时采集 API 接入详解
  • facebook的Open Molecules 2025 (OMol25) 数据集、评估与模型开源速读
  • Mysql数据库之集群进阶
  • 从ThreadLocal到Scoped Values:Java高效数据共享机制的革命性演进
  • 代码随想录算法训练营第四十二四十三天
  • (保姆级)Win10 安装Oracle Developer Suite教程
  • OpenCV 特征检测全面解析与实战应用
  • C++学习:六个月从基础到就业——C++11/14:auto类型推导
  • 解读 TypeScript 枚举Enum
  • 深入理解 Java 字节码操作码
  • 数据存储与容灾:构建企业级数据安全的全栈解决方案
  • Springboot构建项目时lombok不生效
  • 【鸿蒙开发避坑】使用全局状态变量控制动画时,动画异常甚至动画方向与预期相反的原因分析以及解决方案
  • 新的节能技术和一体化解决方案,推动工厂智能升级和产业转型
  • BG开发者日志517:demo数据分析与修改方向
  • 【SpringBoot】关于MP使用中配置了数据库表前缀的问题
  • C++类与对象--2 对象的初始化和清理
  • 英汉 “语言” 初印象:符号背后的文化底色​