Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мищишин електронка.doc
Скачиваний:
1
Добавлен:
08.12.2018
Размер:
1.04 Mб
Скачать

Void main(void)

{

Ifstream input_file("bookinfo.Dat");

char one[64], two[64], three[64];

input_file >> one;

input_file >> two;

input_file >> three;

cout << one << endl;

cout << two << endl;

cout << three « endl;

}

Якщо відкомпілювати і запустити цю програму, то, ймовірно, припустити, що вона відобразить перші три рядки файлу. Проте, подібно cin, вхідні файлові потоки використовують порожні символи, щоб визначити, де закінчується одне значення і починається інше. В результаті на дисплей буде виведено наступне повідомлення:

С:\> FILE_IN <ENTER>

Вчимося

програмувати

на

Читання цілого рядка файлового введення

Програми можуть використовувати cin.getline для читання цілого рядка з клавіатури. Так само об'єкти типу ifstream можуть використовувати getline для читання рядка файлового введення. Наступна програма FILELINE.CPP використовує функцію getline для читання всіх трьох рядків файлу BOOKINFO.DAT:

Void main(void)

{

ifstream input_file("BOOKINFO.DAT");

char one[64], two[64], three[64];

input_file.getline(one, sizeof(one));

input_file.getline(two, sizeof(two));

input_file.getline(three, sizeof(three));

cout << one << endl;

cout << two << endl;

cout << three << endl;

}

В даному випадку програма успішно читає вміст файлу, тому що вона знає, що файл містить три рядки. Проте у багатьох випадках програма не знатиме, скільки рядків міститься у файлі. В таких випадках програми просто продовжуватимуть читання вмісту файлу, поки не зустрінуть кінець файлу.

Визначення кінця файлу

Звичайною файловою операцією у програмах є читання вмісту файлу, поки не зустрінеться кінець файлу. Щоб визначити кінець файлу, програми можуть використовувати функцію eof потокового об'єкту. Ця функція повертає значення 0, якщо кінець файлу ще не зустрівся, і 1, якщо зустрівся кінець файлу. Використовуючи цикл while, програми можуть безперервно читати вміст файлу, поки не знайдуть кінець файлу, як показано нижче:

while (i input_file.eof( ))

{

// Оператори

}

В даному випадку програма продовжуватиме виконувати цикл, поки функція eof повертає (0). Наступна програма TEST_EOF.CPP використовує функцію eof для читання вмісту файлу BOOKINFO.DAT, поки не досягне кінця файлу:

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 читає вміст файлу по одному слову за один раз, поки не зустрінеться кінець файлу:

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, поки не зустріне кінець файлу: