6.8  Определение конца файла

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

}

}