Обычной файловой операцией в программах является чтение содержимого файла до тех пор, пока не встретится конец файла. Чтобы определить конец файла, в программе можно использовать функцию еоf потокового объекта. Эта функция возвращает значение 0, если конец файла еще не встретился, и 1, если встретился конец файла. Используя цикл while, можно непрерывно читать содержимое файла, пока не будет достигнут конец файла. Например:
while (! input_file.eof())
{
// Операторы
}
В данном случае программа будет продолжать выполнять цикл, пока функция eof возвращает ложь (0). Следующая программа TEST_EOF.CPP использует функцию eof для чтения содержимого файла BOOKINFO.DAT, пока не будет достигнут конца файла. Например:
#include <iostream.h>
#include <fstream.h>
void main (void)
{
ifstream input_file("BOOKINFO.DAT");
char line[64];
while (! input_file.eof())
{
input_file.getline(line, sizeof(line));
cout << line << endl;
}
}
Аналогично, следующая программа WORD_EOF.CPP читает содержимое файла по одному слову за один раз, пока не встретится конец файла:
#include <iostream.h>
#include <fstream.h>
void main(void)
{ ifstream input_file("BOOKINFO.DAT");
char word[64] ;
while (! input_file.eof())
{
input_file >> word;
cout << word << endl;
}
}
И наконец, следующая программа CHAR_EOF.CPP читает содержимое файла по одному символу за один раз, используя функцию get, пока не встретит конец файла. Например:
#include <iostream.h>
#include <fstream.h>
void main(void)
{
ifstream input_file("BOOKINFO.DAT");
char letter;
while (! input_file.eof())
{
letter = input_file.get();
cout << letter;
}
}