这两者有什么区别?是不是in标志物的事多余?谢谢.
std::ifstream file1("one.bin", std::ifstream::in | std::ifstream::binary);
std::ifstream file2("two.bin", std::ifstream::binary);
从ifstream类构造函数的文档:
二进制 (二进制)将流视为二进制而不是文本.
in (输入)允许对流进行输入操作.
所以当从文件中读取时,我会使用std::ifstream::inflag而不是因为它是必需的(或者不是),但是因为让编程接口知道你将要使用它是一个很好的编程习惯.
编辑:
以下内容摘自http://www.cplusplus.com/doc/tutorial/files/,关于open()成员函数(但问题代码中的构造函数可能会调用open()复制模式标志而不进行修改).
class: 默认模式参数
ofstream:ios :: out
ifstream:ios :: in
fstream:ios :: in | IOS ::出来对于ifstream和ofstream类,即使不包含它们的模式作为第二个参数传递给open()成员函数,也会自动并分别假设ios :: in和ios :: out.
然而,Web上的许多示例ifstream::in在显示ifstream对象的构造时使用.真的可以是某种迷信练习,而不是编程.
| 归档时间: |
|
| 查看次数: |
10837 次 |
| 最近记录: |