文法:
void stream::clear( iostate flags = ios::goodbit );
clear()関数は次のことをします:
フラグの引数はデフォルトでは ios::goodbit となります。これはデフォルトの状態を表し、すべてのフラグはクリアされ、代わりに ios:goodbitの値が設定されます。
次のサンプルは、出力ストリームから読み込みを行おうとしてエラーになったあとに、 clear()関数を使って出力ファイルストリームのフラグをクリアしています。
サンプルコード:
fstream outputFile( "output.txt", fstream::out ); // 出力ストリームから読みこもうとするが失敗する int val; outputFile >> val; if( outputFile.fail() ) { cout << "出力ストリームから読み込もうとしてエラー" << endl; // ストリームに付加されたフラグをリセットする outputFile.clear(); } for( int i = 0; i < 10; i++ ) { outputFile << i << " "; } outputFile << endl;