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

文件相关操作

文本文件

程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放
通过文件可以将数据持久化
C++的文件操作需要包含头文件

文件分类

文本文件:文件以文本的ASCII码形式存储在计算机中
二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂他们

打开文件的方式

ios::in 为读文件而打开文件
ios::out 为写文件而打开文件
ios::ate 初始位置:文件尾
ios::app 追加方式写文件
ios::trunc 如果文件存在先删除再创建
ios::binary 二进制形式

文件三种操作

ofstream:写操作
ifstream读操作
fstream:读写操作

写文件

int main() {// 创建流对象ofstream ofs;// 打开文件,以写文件和二进制文件格式写文件ofs.open("mle.engine", ios::out | ios::binary);// 写文件内容ofs << "姓名:张三" << endl;ofs.close();
}

读文件


int main() {// 创建流对象ifstream ifs;// 打开文件,以写文件和二进制文件格式写文件ifs.open("mle.engine", ios::in | ios::binary);// 写文件内容char buf[1024] = { 0 };// 方法一while (ifs>>buf) {cout << buf << endl;}// 方法2while (ifs.getline(buf, sizeof(buf))) {cout << buf << endl;}// 方法3string buf;while(getline(ifs, buf)) {cout << buf << endl;}char c;while ((c = ifs.get()) != EOF) {cout << c;}ifs.close();
}

二进制文件

写文件

class Person {
public:string name;
};int main() {ofstream ofs;ofs.open("person.txt", ios::out | ios::binary);Person p = { "zhangsan" };// 把p写入文件,写入大小为sizeof(Person)ofs.write((const char *)&p,sizeof(Person));ofs.close();
}

读文件

class Person {
public:string name;
};int main() {ifstream ifs;ifs.open("person.txt", ios::in | ios::binary);Person p ;ifs.read((char*)&p, sizeof(Person));ifs.close();}
http://www.xdnf.cn/news/419185.html

相关文章:

  • 通过QPS和并发数定位问题
  • 网络体系结构(OSI,TCP/IP)
  • 3.4 数字特征
  • 关于网站提交搜索引擎
  • 【Cesium入门教程】第七课:Primitive图元
  • 算法备案部分咨询问题解答第三期
  • leetcode-hot-100 (滑动窗口)
  • Windows部署LatentSync唇形同步(字节跳动北京交通大学联合开源)
  • 【Redis 进阶】缓存
  • 3.3 阶数的作用
  • 基于机器学习的卫星钟差预测方法研究HPSO-BP
  • Java【10_1】用户注册登录(面向过程与面向对象)
  • Spring Boot配置文件
  • Vue2 elementUI 二次封装命令式表单弹框组件
  • InternVL3: 利用AI处理文本、图像、视频、OCR和数据分析
  • docker部署WeDataSphere开源大数据平台
  • 【人工智能】自然语言编程革命:腾讯云CodeBuddy实战5步搭建客户管理系统,效率飙升90%
  • 论软件设计模式及其应用
  • EXCEL Python 实现绘制柱状线型组合图和树状图(包含数据透视表)
  • 工程类论文查重困局破解:基于知识图谱的跨学科语义重构技术实证研究
  • java复习笔记-面向对象
  • 速卖通如何低成本测评,让店铺流量与销量双提升
  • MapReduce基本介绍
  • 原生小程序+springboot+vue医院医患纠纷管理系统的设计与开发(程序+论文+讲解+安装+售后)
  • 内存中的“BANK”
  • 125.在 Vue3 中使用 OpenLayers 实现通过 WebGLVector 的方式添加海量点
  • MapReduce打包运行
  • 基于大模型预测胸椎管狭窄诊疗全流程的研究报告
  • 基于开源AI大模型AI智能名片S2B2C商城小程序的零售结算技术创新研究——以京东AI与香港冯氏零售集团智能结算台为例
  • 深入理解 JVM:StackOverFlow、OOM 与 GC overhead limit exceeded 的本质剖析及 Stack 与 Heap 的差异