русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Застосування потоків


Дата додавання: 2014-11-28; переглядів: 732.


 

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

ifstream - для читання з файлу,

ofstream - для запису у файл.

Потоки для роботи з файлами створюються простими оголошеннями:

ifstream fin;

ofstream fout;

Тут fin - потік, відкритий для читання (добування) інформації, fout - потік для запису (вставки). Знищення об'єктів-потоків fin та fout буде виконано автоматично при виході зі сфери дії цих імен (звичайно при виході із блоку). Зв'язування оголошеного потоку з конкретним файлом робиться за допомогою функції потоку open:

fin.open("A.dat");

fout.open("B.dat");

Відзначимо, що функція open, крім основного, має ще два параметри, її прототип виглядає так:

void open(char* filename, int mode, int access);

Параметр mode задає режим роботи з файлом, значення цього параметра наведені нижче.

ios::app - відкриває файл у режимі додавання записів у кінець файлу, цей
режим застосовується тільки до файлів, які відкриваються для
запису;

ios::ate - викликає позиціювання покажчика в кінець файлу;

ios::binary - відкриття файлу у двійковому режимі (по умовчанню працює
текстовий режим);

ios::in - відкриття файлу для введення;

ios::out - відкриття файлу для виведення;

ios::trunc - файл скорочується до нульової довжини.

Для сполучення декількох режимів використовується операція “ | ”.

Параметр access відповідає атрибутам файлів DOS/Windows:

0 - звичайний файл із вільним доступом (значення по умовчанню);

1 - файл тільки для читання;

2 - схований файл;

4 - системний файл;

8 - архівний файл.

Зв'язати потік з наданим файлом можна одразу при оголошенні потоку:

ifstream fin("A.dat");

ofstream fout("B.dat");

Якщо з якихось причин файл відкрити не вдалося, потокова змінна (fin або fout) отримує значення 0. Таким чином успішність відкриття файлу можна перевіряти за допомогою такого оператору:

if (fin==0) puts("The file cannot be open!");

 

Використання операцій добування “<<” і вставки ”>>”

Символи операцій добування і вставки перевантажені таким чином, щоб їх можна було використовувати не тільки для стандартних пристроїв, але й для довільних файлів. Ці операції працюють також і для стандартних потоків cin та cout.

Для контролю досягнення кінця файлу можна застосовувати функцію f.eof() , де f - ім’я потоку. Функція повертає значення true, якщо кінець файлу був досягнутий.

У прикладі, наведеному нижче, таблиця деякої функції y(x), що представлена двома масивами типу double, копіюється з одного файлу в іншій.

 

// Приклад 1

#include <fstream.h>


<== попередня лекція | наступна лекція ==>
Void main() | Void main()


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн