Прототип функции clearerr:
void clearerr( FILE * filestream );
Заголовочный файл
Название | Язык |
---|---|
stdio.h | С |
cstdio | С++ |
Описание
Функция clearerr
сбрасывает индикаторы ошибки и конца файла. Когда потоковые функции не выполняются из-за возникновения ошибки или потому, что конец файла был достигнут. Поэтому один из этих внутренних показателей блокирует выполнение функций. Эти показатели сигнализируют об ошибке до тех пор, пока не вызвана одна из следующих функций: rewind
, fseek
, или fsetpos
.
Параметры:
- filestream
Указатель на объект типаFILE
, идентифицируемый поток.
Возвращаемое значение
- нет
Пример: исходный код программы
//пример использования feof #include <cstdio> #include <iostream> int main() { FILE * ptrFile = fopen("file.txt","r"); if (ptrFile == NULL) perror ("Ошибка открытия файла"); else { fputc('x', ptrFile); // записать в файл символ if (ferror(ptrFile)) // если произошла ошибка { std::cout << "Ошибка записи в файл file.txtn"; clearerr (ptrFile); // сбросить индикаторы ошибок } if ( !ferror(ptrFile) ) std::cout << "Нет ошибок записи в file.txtn"; fclose(ptrFile); } return 0; }
Пример работы программы
Эта программа открывает существующий файл file.txt
в режиме — только для чтения и пытается записать символ в файл, тем самым, вызывая ошибку ввода/вывода. Эта ошибка может быть обнулена с помощью функции clearerr
, поэтому второй вызов этой функции возвращает ложный результат на обнаружение ошибки.
CppStudio.com
Ошибка записи в файл file.txt
Нет ошибок записи в file.txt
Нет ошибок записи в file.txt