Функция clearerr

Прототип функции clearerr:

void clearerr( FILE * filestream );

Заголовочный файл

Название Язык
stdio.h С
cstdio С++

Описание

Функция clearerr сбрасывает индикаторы ошибки и конца файла. Когда потоковые функции не выполняются из-за возникновения ошибки или потому, что конец файла был достигнут. Поэтому один из этих внутренних показателей блокирует выполнение функций. Эти показатели сигнализируют об ошибке до тех пор, пока не вызвана одна из следующих функций: rewindfseek, или 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
Автор: Marienko L.
Дата: 15.09.2012
Поделиться:

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.