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
さて、問題は、誰かがこれを理解するのを手伝ってくれるだろうか? 最後のソリューションは機能するのに、中間のソリューションは機能しないのはなぜですか。
編集:メイン関数を修正しました。あなたは毎日何かを学びます。