【小白学习C++ 教程】十八、C++ 中文件处理
@Author:Runsen
在C++中,文件主要通过使用fstream头文件中的fstream、ifstream、ofstream
三个类来处理。
- ofstream:在文件上写入的流类
- ifstream:从文件读取的 流类
- fstream:从/向文件读取和写入的流类。
在 C++ 文件处理中支持以下操作:
- 打开文件
- 关闭文件
- 从文件中读取
- 写入文件
打开文件
打开方式 | 解释 |
---|---|
ios::in | 以输入模式打开文件进行读取。 |
ios::out | 以输出模式打开文件以将数据写入文件 |
ios::ate | 在文件末尾设置初始位置。如果未设置文件结束标志,则初始位置设置为文件的开头。 |
ios::app | 如果文件被打开用于写入并且已经有内容,则内容将被截断 |
ios::trunc | 以追加模式打开文件,以便将所有内容追加到文件末尾。 |
ios::binary | 以二进制模式打开文件。 |
例如,如果我们要打开一个文件“myfile.dat”以二进制方式追加数据,那么我们可以编写如下代码。
ofstream myfile;
myfile.open(“myfile.dat”, ios::out|ios::app|ios::binary);
注意: 文件打开方式可以配合使用,利用|操作符
关闭文件
当我们完成对文件的输入和输出操作时,我们可以使用 close 函数来关闭文件并释放文件所持有的资源。
因此,当我们完成对上述文件 myfile 的操作后,我们可以关闭该文件,如下所示:
myfile.close();
一旦使用 close 函数关闭文件,关联的文件对象就可以重新用于打开另一个文件。
从文件中写入
我们还可以使用文件操作将数据写入文件。我们用来将数据写入文件的运算符是流插入运算符 (<<)。这与我们使用 cout 将数据打印到标准输出设备的操作符相同。两者之间的区别在于,对于文件相关的写入,我们使用 ofstream 或 fstream 对象。
写入文件步骤如下:
包含头文件
#include <fstream>
创建流对象
fstream ofs;
打开文件
ofs.open(“文件路径”,打开方式);
写数据
ofs << “写入的数据”;
关闭文件
ofs.close();
#include<iostream>
#include<fstream>using namespace std;int main() {// 1. 创建 流对象ofstream ofs;// 2.打开文件ofs.open("demo.txt", ios::out);// 3.写入数据ofs << "name:runsen" << endl;ofs << "sex:boy "<< endl;ofs << "age:18" << endl;// 4.关闭流对象ofs.close();
}
从文件中读取
我们可以使用流提取运算符 (>>) 从文件中逐行读取信息。这类似于使用 cin 从标准输入读取输入。唯一的区别是在文件的情况下,使用 ifstream 或 fstream 对象而不是 cin。
#include <fstream>
#include<iostream>
#include <string>using namespace std;int main() {fstream fs;fs.open("demo.txt", ios::in);if (!fs.is_open()){cout << "文件打开失败" << endl;return;}string buf;while (getline(fs, buf)){cout << buf << endl;}fs.close();return 0;
}
【小白学习C++ 教程】十八、C++ 中文件处理相关推荐
- ComicEnhancerPro 系列教程十八:JPG文件长度与质量
作者:马健 邮箱:stronghorse_mj@hotmail.com 主页:http://www.comicer.com/stronghorse/ 发布:2017.07.23 教程十八:JPG文件长 ...
- 【小白学习PyTorch教程】八、使用图像数据增强手段,提升CIFAR-10 数据集精确度...
「@Author:Runsen」 上次基于CIFAR-10 数据集,使用PyTorch构建图像分类模型的精确度是60%,对于如何提升精确度,方法就是常见的transforms图像数据增强手段. imp ...
- 【小白学习C++ 教程】八、在C++指针传递引用和Const关键字
@Author:Runsen 以前,当我们将参数传递给函数时,我们一般使用普通变量,这称为pass-by-value方法.但是因为传递给函数的变量有可以出现超出了范围的问题,这样我们实际上无法修改参数 ...
- 【小白学习PyTorch教程】八、使用图像数据增强手段,提升CIFAR-10 数据集精确度
@Author:Runsen 上次基于CIFAR-10 数据集,使用PyTorch 构建图像分类模型的精确度是60%,对于如何提升精确度,方法就是常见的transforms图像数据增强手段. im ...
- 【小白学习keras教程】八、Sequential Model和模型函数API两种模型建立方法
@Author:Runsen 文章目录 Load dataset Sequential Model API 方法1 方法2 模型函数API 单输入输出 合并图层 1.连接 2. add, subtra ...
- python3上传文件_Python3学习笔记(十八):文件上传和下载
importrequests upload_url= 'http://upload.renren.com/upload.fcgi?pagetype=addpublishersingle&hos ...
- python3下载文件-Python3学习笔记(十八):文件上传和下载
importrequests upload_url= 'http://upload.renren.com/upload.fcgi?pagetype=addpublishersingle&hos ...
- 堆栈——Windows核心编程学习手札之十八
堆栈 --Windows核心编程学习手札之十八 堆栈可以用来分配许多较小的数据块,可以不考虑分配粒度和页面边界之类的问题,但分配和释放内存块的速度比其他机制要慢,并且无法直接控制物理存储器的提交和回收 ...
- OpenCV学习笔记(十六)——CamShift研究 OpenCV学习笔记(十七)——运动分析和物体跟踪Video OpenCV学习笔记(十八)——图像的各种变换(cvtColor*+)imgproc
OpenCV学习笔记(十六)--CamShift研究 CamShitf算法,即Continuously Apative Mean-Shift算法,基本思想就是对视频图像的多帧进行MeanShift运算 ...
- 二维数组离散程度matlab,(十八)数据分析中的一些概念
(十八)数据分析中的一些概念 HIKAI 29 SEP 2017 0 Comments 矢量.向量.标量 矢量和向量是一个东西,只是在不同领域里面用到的不同称呼.矢量常常用在物理学中,向量在数学.几何 ...
最新文章
- python数据结构与算法:双向链表
- PHP取得json前面有乱码(去除文件头部BOM)
- (转)linux运行tomcat时JRE_HOME显示不对怎么办?
- CF - 741(C. Arpa’s overnight party and Mehrdad’s silent entering) 二分图构造
- python pillow无法安装_Pillow
- spark学习-63-源代码:schedulerBackend和taskScheduler的创建(1)-local
- LOJ #6051. 「雅礼集训 2017 Day11」PATH
- @excel 注解_SpringBoot中关于Excel的导入和导出
- Server 安装 caffee
- 【PyTorch深度学习项目实战100例】—— 基于ResNet101实现猴痘病毒识别任务 | 第31例
- 图解CSS3 Flexbox属性
- Pohlig-Hellman算法求Elgamal算法私钥+大步小步法解决DLP(离散对数问题)
- 使用node+vue.js实现SPA应用,解决了SPA应用的最大缺点SEO
- Win10 双屏:主屏和左右屏设置
- 蓝牙简介 | bluetooth
- 部署-Mycat-Server-1.6.7.4安装与配置(CentOS 7.7)
- SQL Server 2016 [修改数据库名称]及[添加次文件和日志文件]
- 【Golang实战】——XPath解析网页
- 杉岩数据对象存储替换IBM FileNet,突破性能瓶颈
- VC 2005安装闪了一下就没了_CAD2010(精简版)安装教程
热门文章
- Cpp 对象模型探索 / 继承关系下的虚函数手动调用
- C/Cpp / #include
- word文字中带有数学公式的行间距设置
- Ubuntu MTK/RK/AW 编译服务器
- Android App层 单独使用SystemProperties
- java字符排序规则_java 重写排序规则,用于代码层级排序
- php forms 上传更新json_通达OA任意文件上传漏洞详细分析
- 磁盘上没有足够的空间完成此操作_【教程】Windows的磁盘分区,两分钟搞定!!...
- 小程序分享,获取openid
- Divide by three, multiply by two CodeForces - 977D (思维排序)