持续创作,加速成长!这是我参与「掘金日新计划 · 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在打开的使用全部可以公用,但是主要要使用不同的参数,并且 他的打开方式和属性可以多选,只需要在使用的过程中将两个及以上的中间用或 | 符号进行隔开。如有不对的地方,请各位大佬多多指教!