C++ 中 std::fstream::X 和 std::ios::X 的区别

6 c++ fstream

我是 C++ 的新手。我有一个简单的问题要问您std::fstream::X and std::ios::XC++ 中的打开文件模式有什么区别?

哪里 x可以in, out, ate, trunk, ate

这是更多示例:

fs.open(filename.c_str(), std::fstream::in | std::fstream::out | std::fstream::app);
Run Code Online (Sandbox Code Playgroud)

对比

fs.open(filename.c_str(), std::ios::in | std::ios::out | std::ios::app);
Run Code Online (Sandbox Code Playgroud)

这两者之间有什么区别?

请不要以复杂的方式回答,因为我是 C++ 初学者。

zan*_*ngw 3

引用文件中的输入/输出

class :默认模式参数

流外:ios::out

ifstream: ios::in

fstream:ios::in | ios::输出

对于 ifstream 和 ofstream 类,会自动分别假定 ios::in 和 ios::out,即使不包含它们的模式作为第二个参数传递给 open() 成员函数也是如此。

std::fstreamstd::ios根据此页面,继承自

从文件中读取时,我更喜欢使用std::ifstream::in标志,因为让编程接口知道您将使用它做什么可能是一个很好的编程实践。