文件流(fstream)

在编译器上使用 fstream 要加上头文件 #include<fstream>

我们先来讲一下和前面几个流的相同之处:

1.都有状态之说

2.flush的机制和之前一致

3.tie(绑定流的机制)

....

现在来讲一下不同之处,以往的流只有单一的打开方式,但是文件流和C语言的文件操作相似,有多种打开方式(操作方式)

in :

打开阅读文件

out:

打开写文件

binary:

以二进制的方式来进行读/写

ate:

定位到文件尾部

app:

把操作的位置固定在文件尾部

trunc:

在打开的时候自动清理文件

如何使用文件操作?

ifstream(const char* filename,std::fstream::in)

要是你想要增加操作方式的话就要用 | 符号

比如

ifstream ist ("test.txt",std::fstream::in|std::fstream::app);

ofstream和这个非常相似,不在赘述

比较有意思的就是二进制的玩法

iofstream 的打开方式都用binary(二进制)打开,往文件中读/写 使用 read/write

这两个参数分别代表要写入的来源,并且转换成const char* ,既是为了保护,也是为了一个一个字节的写入,后面的size_t 就是要写入多少字节的东西。

但是我们现在讨论能不能使用>>/<< ,答案是可以的但是有限制,要确保是按照字节读取/写入就行!

同理就是写入多少字节,这里的第一个参数不能是const类型!!!

但是存在一些要点,比如

app不能和binary结合

app不能和in结合

仅有out的话是自动具有打开文件自动清理的功能的,但是如果你要真的想要这个作用最好显示携成 std::fstream::out | std::fstream::trunc

我们现在来拷贝一下图片,怎么拷贝?

图片的话本质是点阵,也就是bit,所以用二进制来读取,

相关推荐
不吃香菜学java4 小时前
Redis的java客户端
java·开发语言·spring boot·redis·缓存
captain3764 小时前
事务___
java·数据库·mysql
北漂Zachary4 小时前
四大编程语言终极对比
android·java·php·laravel
小江的记录本4 小时前
【网络安全】《网络安全常见攻击与防御》(附:《六大攻击核心特性横向对比表》)
java·网络·人工智能·后端·python·安全·web安全
贵沫末4 小时前
python——打包自己的库并安装
开发语言·windows·python
文祐4 小时前
C++类之虚函数表及其内存布局(一个子类继承一个父类)
开发语言·c++
zuowei28895 小时前
华为网络设备配置文件备份与恢复(上传、下载、导出,导入)
开发语言·华为·php
xiaohe075 小时前
超详细 Python 爬虫指南
开发语言·爬虫·python
嗑嗑嗑瓜子的猫5 小时前
Java!它值得!
java·开发语言
xiaoshuaishuai86 小时前
C# GPU算力与管理
开发语言·windows·c#