-1

関数を永久に実行させることができるストリームはどのようなものですか?

そのようなストリームは存在しますか?

4

3 に答える 3

3

標準入力。

于 2010-08-30T11:00:47.170 に答える
2

ifstream("/dev/random") ifstream("/dev/zero")

于 2010-08-30T11:21:21.263 に答える
2

ストリームでエラーが発生すると、情報の返し/受け入れが停止します。関数がストリームから何かが出てくるのを待っている場合、関数は永久にスピンします。

if ( cin )(ストリームを にキャスト) を使用boolして、エラー状態をテストします。または、プログラムまたはストリームの初期化時に呼び出しcin.exceptions( ios::badbit )て、エラー状態が静かにスピンするのではなく例外をスローするようにします。

プログラムがそのようなエラーから回復できる場合は、呼び出しcin.clear()(または任意のストリーム) に続いてcin.ignore()、問題のある入力を削除します。

于 2010-08-30T11:33:38.977 に答える