【发布时间】:2012-09-04 02:50:20
【问题描述】:
为了在 C++ 中执行文件 IO,我们使用了 ofstream、ifstream 和 fstream 类。
- ofstream:写入文件的流类
- ifstream:从文件中读取的流类
- fstream:流类以读取和写入文件
将文件与流对象关联的过程称为“打开文件”。
打开文件时,我们可以指定打开文件的模式。
我的查询与ios::out 和ios:in 模式有关。
当我创建一个ofstream 对象并以ios::in 模式打开文件时,我能够
写入文件,但前提是它已经创建(使用ios::out 模式文件,如果它不存在,也会创建它)。
但是当我创建ifstream 对象并以ios::out 模式打开文件时,我可以从文件中读取。
我的问题是为什么当流的类型(ifstream/ofstream)本身指定哪种类型的操作(输入/输出) 正在执行吗?
还有为什么这种模棱两可的用法(ofstream 和 ios::in 和 ifstream 和 ios::out)在一种情况下有效而在另一种情况下失败(尽管只有文件不存在时)?
【问题讨论】: