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

Лекція №7 (2 години)

Тема 2.5. Файли. Опорний конспект

Файл – це сукупність даних, які розміщені на зовнішньому носії, зокрема, на жорсткому диску. Дані у файлі називаються елементами. Кількість даних під час опрацювання файлів не зазначають. Файли можуть містити як текстову, так і числову інформацію.

Існує декілька бібліотечних функцій, які дають змогу зчитувати інформацію з файлу або спрямовувати потік виведення у файл. Функції, які розглядатимемо, описані в бібліотеці fstream.h. Тому для роботи з файлами насамперед необхідно підключити саме цю бібліотеку.

Для опрацювання файлу його необхідно відкрити, виконати потрібні дії та закрити.

Зчитування даних із файлу.

Щоб зчитати вхідні дані з файлу, необхідно оголосити файлову змінну та відкрити файл для читання так (розглянемо два способи):

іfstream <назва файлової змінної>(<зовнішня назва>, ознака1 |ознака2| … | ознакаN);

або так:

іfstream <назва файлової змінної>; <назва файлової змінної>.open(<зовнішня назва>);

Дія команд. Підключаємо потік введення даних із файлу та налагоджуємо зв’зок між файловою змінною у програмі та файлом на зовнішньому носії. Назву зовнішнього файлу треба записувати у лапках. Ознаки слугують для визначення прав доступу до файлу. Ознаки зазначати необов’язково. У випадку, коли їх задавати не потрібно, наведені дві форми запису тотожні, і можна обирати одну з них.

Приклад 1. Відкрити зовнішній файл MyText.txt для читання з нього даних можна так:

ifstream MyFile(“MyText.txt”);

або так:

ifstream MyFile; MyFile.open(“MyText.txt”);

Тут MyFile – це файлова змінна, що асоціюється у програмі з відповідним зовнішнім файлом на диску. Введення даних виконують командою введення >>. Наприклад, команда MyFile >> text зчитає одне дане з початку файлу MyText.txt до першого пропуску чи до символу "кінець рядка" у змінну txt. Якщо треба зчитати наступне дане (яке розміщене між першим і другим пропусками), необхідно повторити попередню команду, тобто записати команди MyFile >> text; MyFile >> text1; або використати команду MyFile >> text >> text1;.

Отже, зчитати дані з файлу можна за допомогою команди:

<назва файлової змінної> >> <змінна 1> >> <змінна 2> >> … >> <змінна N>

Після опрацювання файлу його потрібно закрити. Це роблять так:

<назва файлової змінної>.close()

Наприклад, MyFile.close(). Файл MyText.txt буде закрито. Після цього файлову змінну MyFile у разі потреби можна зв’язати з іншим файлом на диску.

Визначити кінець файлу можна за допомогою функції eof() (eof – end of file, кінець файлу) так:

<назва файлової змінної>.eof()

Ця функція повертає нульове значення, якщо досягнуто кінця файлу.

Приклад 2. Нехай створено деякий текстовий файл MyText.txt. Написати програму, яка виводить на екран перше слово та першу букву другого слова з даного файлу.

#include <vcl.h>

#pragma hdrstop

#include <fstream.h>____________________________________________________

#include <conio.h>

#include <iostream.h>___________________________________________________

#pragma argsused

void main()

{

string text;__________________________________________________________

char bukva;_________________________________________________________

ifstream MyFile;___________________________________________________

MyFile.open("MyText.txt");____________________________________________

MyFile>>text;_______________________________________________________

MyFile>>bukva;_____________________________________________________

cout<<text<<"\t";______________________________________________________

cout<<bukva ;_________________________________________________________

MyFile.close();_________________________________________________________

getch();____________________________________________________________

}

Приклад 3 Нехай у деякому текстовому редакторі створено файли text1.txt та text2.txt. послідовно зчитаємо з них дані та виведемо їх вміст на екран.

#include <vcl.h>

#pragma hdrstop

#include <fstream.h>___________________________________________________

#include <conio.h>

#include <iostream.h>

#pragma argsused

void main()

{

ifstream File1;_________________________________________________________

File1.open("text1.txt");______________________________________________

char *t = new char[30];_________________________________________________

while (!File1.eof())___________________________________________________

{

File1 >> t;_________________________________________________________

cout << t << "\n";____________________________________________________

delete[] t;____________________________________________________________

}

File1.close();_________________________________________________________

ifstream File2;_______________________________________________________

File2.open("text2.txt");__________________________________________________

while (!File2.eof())____________________________________________________

{

File2 >> t;_____________________________________________________________

cout << t << "\n";______________________________________________________

delete[] t;__________________________________________________________

}

File2.close();___________________________________________________________

getch();______________________________________________________________

}