Прототип функции 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, и подсчитывает количество символов, которое он содержит, считывая их посимвольно. В итоге, выводится общее количество байтов.