Функция clearerr () очищает индикаторы конца файла и ошибки для данного потока.
В программировании на C clearerr () очищает индикаторы конца файла и ошибки для данного потока.
clearerr()
Функция определена в заголовочном файле.
Прототип C clearerr ()
void clearerr (ФАЙЛ * поток);
Функция clearerr () принимает один параметр, который является указателем на объект FILE, который идентифицирует поток.
Функция не возвращает никакого значения.
Пример: функция C clearerr ()
#include int main () ( FILE * pFile; pFile = fopen("myfile.txt","r"); if (pFile == NULL) perror ("Error opening file"); else ( fputc('x', pFile); if(ferror(pFile)) ( printf("Error Writing to myfile.txt"); clearerr(pFile); ) fgetc(pFile); if (!ferror(pFile)) printf("No errors reading myfile.txt"); fclose(pFile); ) return 0; )
Вывод
Ошибка записи в myfile.txt Нет ошибок при чтении myfile.txt
Эта программа открывает существующий файл, который требуется myfile.txt
для чтения.
Теперь функция fputc()
пытается записать в файл. Поскольку запись в режиме чтения не разрешена, это вызывает ошибку ввода-вывода.
Однако эта ошибка устраняется с помощью clearerr()
. Таким образом, когда в ferror()
функции происходит следующая проверка ошибок , она показывает, что ошибок не обнаружено.