首页 理论教育 C++文件模式:实用技巧

C++文件模式:实用技巧

时间:2023-08-20 理论教育 版权反馈
【摘要】:在之前的示例中,由于文件流类型都有各自默认的文件模式,因此没有反映出来。文件模式一共有如表10.3.1中所示的6种:表10.3.1文件模式上表中除了文件模式的说明之外,还列举了每种文件模式适用的文件流类型。每个文件模式都在二进制数字的一个位上占了1,也就是2的n次幂数(1、2、4……),所以文件模式的组合可以用位或操作符实现。提示文件和文件流是两种不同的概念,而文件模式是与文件关联的。

C++文件模式:实用技巧

在打开文件的时候,除了文件名,我们还可以指定文件模式(File Mode)来对文件进行不同的操作。在之前的示例中,由于文件流类型都有各自默认的文件模式,因此没有反映出来。文件模式一共有如表10.3.1中所示的6种:

表10.3.1 文件模式

上表中除了文件模式的说明之外,还列举了每种文件模式适用的文件流类型。使用ifstream打开文件默认使用in模式,使用ofstream打开文件默认使用out模式,而使用fstream打开文件默认使用in和out模式。因为out和in一起使用的时候不会清空文件,而out单独使用的时候会清空文件,所以单独使用out也相当于同时使用out和trunc。每个文件模式都在二进制数字的一个位上占了1,也就是2的n次幂数(1、2、4……),所以文件模式的组合可以用位或操作符实现。

in模式和out模式的效果我们在前面已经看过了,接下来就让我们看一下app模式的效果:

动手写10.3.4

(www.xing528.com)

动手写10.3.4展示了app文件模式的效果,编译运行后的输出文件如图10.3.4所示:

图10.3.4 app文件模式

我们可以看到,程序在循环中数次用app模式打开文件、写数据,然后关闭。每次打开文件的时候并没有清空重写,而是接着上一次写的结果继续添加数据。

提示

文件和文件流是两种不同的概念,而文件模式是与文件关联的。也就是说,我们用同一个文件流对象打开两个不同文件的时候,前一个文件的文件模式不会转移到第二个文件,而是需要重新指定文件模式,或者使用默认的文件模式。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈