0
がのfstreamがすでに存在するファイルのためにios::out
モードでのみ使用されている場合、それはファイルを切り捨て、期待通りに(新たに開いたファイルにデータを書き込みます)。使用中のIOS ::とiOS :: outが同時にfstreamの中
しかしのfstreamは次のようにモードに内外の両方で使用されている場合:
fstream fil;
fil.open("Student.dat",ios::out|ios::in);
それは切り捨てすでに存在するファイル、むしろそれが含むファイル、その結果のファイルに上書きされていません既に存在するコンテンツを新しいコンテンツに追加した新しいコンテンツと、 'out
'モードでは、既存のファイルを切り捨てることが予想されます。
誰でも、なぜそれが起こるのか説明できますか?
'ios :: trunc'フラグが切り詰めに使用されていませんか? –
'ios :: trunc'フラグは切り捨てに使用されますが、デフォルトでは' ios :: out'で利用可能で、 'ios :: out'が単独で使用されているとき(つまりios :: inなし)に見ることができます。ですから、ios :: outで 'ios :: out'を使うと、デフォルトで切り捨てられません。とにかくお返事ありがとうございます... –