2

未開封とは:

ofstream outFile;
outFile << "Some text";

だから私はメソッドofstreamを呼び出さずにテキストを入れました。.open()g++ は文句を言わないので、まだデータを保存できるのでしょうか? どのように?

4

3 に答える 3

7

これを実行すると、ストリームは失敗状態になります ( outFile.fail()true になります)。テキストはどこにも保存されないので、保存できません。

データをメモリに保存する場合は、代わりにstd::ostringstream(<sstream>ヘッダーから) を使用します。

于 2011-06-08T16:03:33.543 に答える
3

g ++はコンパイラであり、コードを実行しないため、文句を言いませんが、実行すると厄介なことが発生する可能性があります。

NULL同様に、ポインタを逆参照しようとしても、g++は文句を言いません。

于 2011-06-08T16:05:02.047 に答える
0

ストリームのアクションが失敗すると、ストリームはエラーを eof、fail、および bad を表すビットとして内部的に保存します。ios::exceptions()で設定した場合、ストリームは例外をスローすることもできます。

iostream ライブラリの設計の一部は、エラー状態にあるストリームを使用すると、黙って出力を破棄したり、入力を生成したりしないが、それ以外の場合はユーザーに警告しないようです。これの利点は、ストリームを使用して複数の操作を実行し、途中で失敗した場合でも失敗した状態のままであり、失敗してから何も生成されていないことを確認して、最後に確認できることです。

于 2012-01-25T23:12:53.933 に答える