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

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;
​
}

相关文章:

  • 第9讲、深入理解Scaled Dot-Product Attention
  • 重庆 ICPC 比赛游记
  • 信贷域——互联网金融业务
  • 哈希的原理、实现
  • 【OpenGL学习】(二)OpenGL渲染简单图形
  • 系统架构设计(八):三层架构
  • SVN 版本控制入门指南
  • Qt与Hid设备通信
  • Python多进程编程执行任务
  • Class类的详细说明
  • Go语言 GORM框架 使用指南
  • Unity 人物模型学习笔记
  • Windows 上安装下载并配置 Apache Maven
  • 英语学习5.17
  • 系统架构设计师案例分析题——软件架构设计篇
  • 深入解析 React 的 useEffect:从入门到实战
  • 网络切片:给用户体验做“私人定制”的秘密武器
  • Spring Boot- 2 (数万字入门教程 ):数据交互篇
  • shell脚本之条件判断,循环控制,exit详解
  • NestJS——日志、NestJS-logger、pino、winston、全局异常过滤器
  • 经济日报金观平:促进信贷资金畅达小微企业
  • 商务部召开全国离境退税工作推进会:提高退税商店覆盖面,扩大入境消费
  • 一周文化讲座|“我的生命不过是温柔的疯狂”
  • 自然资源部:不动产登记累计化解遗留问题房屋2000多万套
  • 中国青年报:为见义勇为者安排补考,体现了教育的本质目标
  • 国税总局上海市税务局通报:收到王某对刘某某及相关企业涉税问题举报,正依法依规办理