C++ 中 std::fstream::X 和 std::ios::X 的区别
Difference between std::fstream::X and std::ios::X in C++
我是 C++ 新手。我有一个简单的问题想问你 std::fstream::X and std::ios::X
在 C++ 中打开文件模式有什么区别?
其中 x
可以是 in, out, ate, trunk, ate
?
这里有更多例子:
fs.open(filename.c_str(), std::fstream::in | std::fstream::out | std::fstream::app);
对
fs.open(filename.c_str(), std::ios::in | std::ios::out | std::ios::app);
这两者有什么区别?
我是C++初学者,请不要回答的太复杂
没有区别。 std::fstream::X
继承自 std::ios
,因此它与 std::ios::X
.
的值相同
class: default mode parameter
ofstream: ios::out
ifstream: ios::in
fstream: ios::in | ios::out
For ifstream and ofstream classes, ios::in and ios::out are automatically and respectively assumed, even if a mode that does not include them is passed as second argument to the open() member function.
std::fstream
继承自std::ios
,据此page
从文件中读取时,我更喜欢使用 std::ifstream::in
标志,因为让编程接口知道您将使用它做什么是一个很好的编程习惯。
爱丽丝有一个儿子鲍勃。他们都有相同的头发颜色——比方说棕色。现在,有人问你:"What's their family's hair color?" 你可以说 Alice 的 或 Bob 的:是一样的。
你能看出重点吗?虽然颜色相同,但鲍勃 继承了 她母亲的遗传。 std::ios::in
和 std::fstream::in
是相同的——它是 相同的 值,因为它们具有继承关系,但这是它们的 "own" 值,因为它们不是同一类型(同样,爱丽丝和鲍勃也不是同一个人)。
我是 C++ 新手。我有一个简单的问题想问你 std::fstream::X and std::ios::X
在 C++ 中打开文件模式有什么区别?
其中 x
可以是 in, out, ate, trunk, ate
?
这里有更多例子:
fs.open(filename.c_str(), std::fstream::in | std::fstream::out | std::fstream::app);
对
fs.open(filename.c_str(), std::ios::in | std::ios::out | std::ios::app);
这两者有什么区别?
我是C++初学者,请不要回答的太复杂
没有区别。 std::fstream::X
继承自 std::ios
,因此它与 std::ios::X
.
class: default mode parameter
ofstream: ios::out
ifstream: ios::in
fstream: ios::in | ios::out
For ifstream and ofstream classes, ios::in and ios::out are automatically and respectively assumed, even if a mode that does not include them is passed as second argument to the open() member function.
std::fstream
继承自std::ios
,据此page
从文件中读取时,我更喜欢使用 std::ifstream::in
标志,因为让编程接口知道您将使用它做什么是一个很好的编程习惯。
爱丽丝有一个儿子鲍勃。他们都有相同的头发颜色——比方说棕色。现在,有人问你:"What's their family's hair color?" 你可以说 Alice 的 或 Bob 的:是一样的。
你能看出重点吗?虽然颜色相同,但鲍勃 继承了 她母亲的遗传。 std::ios::in
和 std::fstream::in
是相同的——它是 相同的 值,因为它们具有继承关系,但这是它们的 "own" 值,因为它们不是同一类型(同样,爱丽丝和鲍勃也不是同一个人)。