为了在 C++ 中执行文件 IO,我们使用了 ofstream、ifstream 和 fstream 类。
- ofstream:写入文件的流类
- ifstream:从文件中读取的流类
- fstream:流类以读取和写入文件
将文件与流对象关联的过程称为“打开文件”。打开文件时,我们可以指定打开文件的模式。我的查询与ios::out
和ios:in
模式有关。
当我创建一个ofstream
对象并使用模式打开文件时ios::in
,我可以写入文件,但前提是它已经创建(ios::out
如果它不存在,也会创建模式文件)。
但是当我创建ifstream
对象并使用模式打开文件时ios::out
,我可以从文件中读取。
我的问题是,当流( / )的类型本身指定正在执行哪种类型的操作(输入/输出)时,为什么这些模式(ios::in
/ ios::out
)由语言提供?ifstream
ofstream
另外,为什么这种模棱两可的用法(ofstream
withios::in
和ifstream
with ios::out
)在一种情况下有效而在另一种情况下失败(尽管仅当文件不存在时)?