2012-02-08 16 views
-4

次のコードは、linux(g ++)でコンパイルして実行すると効果がありません。それは移植性の問題ですか?どうすればそれを動作させることができますか?ファイルIOの移植性の問題

ofstream myfile; 
myfile.open("myfile.txt", fstream::in | fstream::out | fstream::app); 
+2

「myfile」とは何か、期待される効果は何ですか? –

+0

C++はすべてのタイプについてです。 'myfile'のタイプは? 「効果がない」とはどういう意味ですか? –

+0

申し訳ありません..ただラインを逃しました。投稿を更新しました。予想される効果によって、出力がmyfile.txtに追加されることを意味します。 – newbie

答えて

3

A std::ofstream出力ストリームです。定義上、は入力データできません。だから、フラグとしてfstream::inを与えることは間違っています。

の出力先にファイルストリームを入力する場合は、std::fstreamを使用します。

確かに、これはあなたの問題の原因とは限りません。しかしそれは間違っています。

0

ファイルに書き込まれない最も一般的な理由は、終了時にストリームを閉じることを忘れたためです。プログラムが終了する前のどこかにあるmyfile.close();。これによりバッファがフラッシュされ、実際にすべてがファイルに書き込まれ、途中のキャッシュには格納されません。