Прототип функции feof:
int feof ( FILE * filestream );
Заголовочный файл
Название | Язык |
---|---|
stdio.h | С |
cstdio | С++ |
Описание
Функция feof
проверяет, достигнут ли конец файла, связанного с потоком, через параметр filestream
. Возвращается значение, отличное от нуля, если конец файла был действительно достигнут.
Вызов данной функции, как правило, выполняется после выполнения предыдущей операции с потоком, например операции считывания, которая постепенно двигает внутренний указатель файла в конец.
Дальнейшие операции с файлом, после достижения его конца не будут выполняться до тех пор, пока внутренний указатель не будет сдвинут назад, функциями fseek
или fsetpos
. Таким образом индикатор положения внутреннего указателя будет иметь новое значение, отличное от EOF
.
Параметры:
- filestream
Указатель на объект типаFILE
, идентифицируемый поток.
Возвращаемое значение
Если достигнут конец файла, функция возвращает ненулевое значение.
В противном случае возвращается нулевое значение.
Пример: исходный код программы
//пример использования feof #include <cstdio> #include <iostream> int main() { FILE * ptrFile = fopen("file.txt", "rb"); long ctr = 0; // счетчик символов if (ptrFile == NULL) perror("Ошибка открытия файла"); else { while ( !feof(ptrFile) ) // пока не конец файла { fgetc(ptrFile); // прочитать символ из файла ctr++; } fclose (ptrFile); // закрыть файл std::cout << "Общее количество байтов: " << (ctr - 1); } return 0; }
Пример работы программы
Этот код открывает файл с именем file.txt
, и подсчитывает количество символов, которое он содержит, считывая их посимвольно. В итоге, выводится общее количество байтов.