我遇到了 ofstream 的一个奇怪行为,“对我来说最不奇怪。这是我的程序,我使用的是 Visual Studio 2010 Express Edition。
int main () {
std::ofstream file("file.txt");
file << "something1";
file.close();
file.open("file.txt", std::ios::ate | std::ios::in );
file << "something2";
file.close();
return 0;
}
这会产生正确的输出。
某事1某事2
现在,如果我用以下代码替换第 9 行,
file.open("file.txt", std::ios::ate);
我得到这个输出。
某事2
但是如果我再次替换第 9 行,这次用这段代码,
file.open("file.txt", std::ios::ate | std::ios::in );
我得到这个输出。
某事1某事2
现在,我想问题是,有人可以帮我解释一下吗?为什么最后一个解决方案有效,但中间一个没有。
编辑:更正了主要功能。你每天都会学到一些东西。