未開封とは:
ofstream outFile;
outFile << "Some text";
だから私はメソッドofstream
を呼び出さずにテキストを入れました。.open()
g++ は文句を言わないので、まだデータを保存できるのでしょうか? どのように?
これを実行すると、ストリームは失敗状態になります ( outFile.fail()
true になります)。テキストはどこにも保存されないので、保存できません。
データをメモリに保存する場合は、代わりにstd::ostringstream
(<sstream>
ヘッダーから) を使用します。
g ++はコンパイラであり、コードを実行しないため、文句を言いませんが、実行すると厄介なことが発生する可能性があります。
NULL
同様に、ポインタを逆参照しようとしても、g++は文句を言いません。
ストリームのアクションが失敗すると、ストリームはエラーを eof、fail、および bad を表すビットとして内部的に保存します。ios::exceptions()で設定した場合、ストリームは例外をスローすることもできます。
iostream ライブラリの設計の一部は、エラー状態にあるストリームを使用すると、黙って出力を破棄したり、入力を生成したりしないが、それ以外の場合はユーザーに警告しないようです。これの利点は、ストリームを使用して複数の操作を実行し、途中で失敗した場合でも失敗した状態のままであり、失敗してから何も生成されていないことを確認して、最後に確認できることです。