Синтаксис:
void stream::clear( iostate flags = ios::goodbit );
Функция clear() делает две вещи:
Аргумент flags определен с помощью ios::goodbit. Это означает, что по умолчанию все флаги сброшены и задан ios::goodbit.
Например, следующий код использует clear() для сброса флагов файлового потока вывода после попытки чтения из этого потока вывода.
Код примера:
fstream outputFile( "output.txt", fstream::out ); // попытка чтения из потока вывода; она не будет работать int val; outputFile >> val; if( outputFile.fail() ) { cout << "Error reading from the output stream" << endl; // сброс флагов, связанных с потоком outputFile.clear(); } for( int i = 0; i < 10; i++ ) { outputFile << i << " "; } outputFile << endl;