ofstream与ifstream的使用

174 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情

前言

stream 由字面意思翻译可知,他是一个流,在我们打开一个文件获取文件中的内容的时候都少不了流的存在。而ofstream与ifstream是一种队里的存在。

两者的差异

ofstream 他是从内存到文件的缓冲

ifstream 他是从文件到内存的缓冲

从他们两个的组成方式可以发现,他们的后缀相同,不同在于他们的前缀,而他们前缀的命名正好符合我们使用的I/O解释。一个是由内而外的输出,一个是由外到内的存储。

打开文件

void open(const char* filename,int mode,int access);

在用于打开文件是他具有三个参数,第一个参数是目标文件的文件名,第二个参数是文件的打开放式,第三个参数是打开文件的属性。在打开方式和属性中他具有许多适用的参数。

打开方式

ios::app:   通过追加的方式打开文件
ios::ate:   这个方式已经被包含于ios::app的方式中,他主要是在打开文件后,直接把当前位置默认在尾部
ios::binary: 他是通过二进制的方式打开文件\

ios::in:    它是由文件输入到内存的方式打开
ios::out:   它是由内存输入到文件的方式打开
注意 这里的两种方式是可以同时存在的

ios::nocreate: 他只是打开文件,在没有此文件的时候他会打开失败,不会在创建一个命名相同的文件
ios::trunc:  如果文件存在,把文件长度设为0

属性

他有四个属性

0:普通文件,打开访问
1:只读文件
2:隐含文件
3:系统文件

总结

ofstream与ifstream在打开的使用全部可以公用,但是主要要使用不同的参数,并且 他的打开方式和属性可以多选,只需要在使用的过程中将两个及以上的中间用或 | 符号进行隔开。如有不对的地方,请各位大佬多多指教!