在C++文件中:作为ios :: binary打开的文件与以ios :: binary |打开的文件不同 IOS ::出来?

Ala*_*_AI 5 c++ fstream

如果我打开一个文件,如:

ofstream file("file.dat",ios::binary);
Run Code Online (Sandbox Code Playgroud)

要么

ofstream file("file.dat",ios::binary | ios::out);
Run Code Online (Sandbox Code Playgroud)

我怎么能用后一种形式打开的文件,我不能用前一种形式,反之亦然

谢谢

Jer*_*fin 5

对于ofstream,ios::out是默认值,因此没有区别.我相信唯一一次指定ios :: out会产生影响,如果你使用的是一个可以打开读取或写入的fstream,或两者兼而有之.


Ala*_*_AI 1

感谢所有回答我的人:我现在根据我得到的回答测试了几个代码,并得出了这个总结:

使用 ofstream: 即使没有指定任何内容,ios::out 也是默认值,但如果您仅将 ios::in 与 ofstream 一起使用,则不会出现编译错误(除非您使用 read() 或 >> 或某些 ifstream 对象),但不会有文件被写下来。

使用 ifstream: ios::in 是默认值,即使没有指定任何内容,但如果您仅将 ios::out 与 ifstream 一起使用,则不会出现编译错误(除非您使用 write() 或 << 或某些 ofstream 对象),但您可以' t 从文件中读取任何信息。

使用 fstream: 没有默认值,您必须明确确定要做什么。否则,不会出现编译错误,但你不会简单地得到你想要的东西。

至于原来的问题,两者的工作原理完全相同!