前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++文件IO

C++文件IO

作者头像
用户7272142
发布2023-10-28 09:36:57
1870
发布2023-10-28 09:36:57
举报
文章被收录于专栏:Republic博客Republic博客

我们在windows平台上进行开发,我们需要的只是将程序和文件相连的途径让城西读取文件内容的途径以及让程序创建和写入文件的途径,因此,我将继续学习文件IO,之前我们在C++语言也学习过类似的文件操作。 C++ IO类处理文件的输入和输出和处理标准输入和输出的方式非常类似。要写入文件需要创建一个ofstream对象 并使用ostream方法 要读取一个文件 需要创建一个ifstream对象,并使用istream方法 与标准输入输出相比 文件的管理要更为复杂。 文件的类型分为文本文件和二进制文件,文本文件又称为ASCII文件,它的每个字节存放一个ASCII码,代表一个字符。二进制文件则是把内存中的数据,按照其在内存中的存储形式原样写在磁盘上存放。比如一个 short 类型的整数20000,在内存中占用2个字节,而按文本形式输出则占5个字节。因此在以文本形式输出时,一个字节对应一个字符,因而便于字符的输出,缺点则是占用存储空间较多。用二进制形式输出数据,节省了转化时间和存储空间,但不能直接以字符的形式输出。所以,大家可以根据自己的需要选择使用文本文件还是二进制文件存储。如果是输出log文件之类的,那肯定就得用文本形式了

简单的文件IO

首先应该包含fstream头文件 然后声明一个fstream对象 fstream fout接下来就需要将这个文件和特定的文件关联起来 可以使用open关联也可以使用构造函数关联 然后使用cout方式使用fout 例如我们要在文件中输出“Hello cvpotato”这个字符串 可以这样

代码语言:javascript
复制
fstream fout("Hello.txt");
fout<<"Hello cvpotato";

由于ostream是oftream类的基类,因此可以使用所有ostream的方法,包括各种插入运算符定义 格式化方法和控制符。ofstream类使用被缓冲的输出 因此程序在创建像fout这样的ofstream对象时,将为输出缓冲分配空间。。。好吧确实这种表达很难理解,不得不吐槽一下这本书。。。 先了解一下我们用到的类库

代码语言:javascript
复制
fstream(输入输出文件流):支持文件的输入与输出操作;

ifstream(输入文件流):支持从文件中输入操作; ofstream(输出文件流):支持向文件写入的操作; 实际上这几个类都是C++标准模板库STL中提供给我们的,现成的,写好的文件流操作类,我们可以直接拿过来用!之前说过本身C++兼容C语言,所以C语言中的文件读写函数仍然支持,比如:fopen、fread、fwrite、fclose 等等。不过C++中的这几个文件流操作类更符合C++的操作习惯,使用起来更为方便,所以,更建议大家使用C++中的文件操作类。 再回到我们前面的操作中去可以使用open或者构造函数初始化建立文件链接 实际上open不止有一个参数 第二个参数就是选择打开的方式 我们之所以调用open不用给定参数是因为每个对象都有打开文件的方式 ifstream是ios::in 而oftream是ios::cout fstream是ios::in|ios::out 与C语言一样,是可以通过|符号进行组合使用的 常用参数如下:

代码语言:javascript
复制
ios::in  
为输入(读)而打开文件  
ios::out  
为输出(写)而打开文件  
ios::ate  
初始位置:文件尾  
ios::app  
所有输出附加在文件末尾  
ios::trunc  
如果文件已存在则先删除该文件  
ios::binary  
二进制方式

可以通过判断输出流文件对象和类方法is_open来判断文件是否打开成功以及使用 fs.close() 关闭文件流。也就是是文件流对象 fs 跟磁盘文件断开连接。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简单的文件IO
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档