Читайте также:
|
|
Введення і виведення в С++ організований за допомогою так званих поточних класів, що містять дані і методи роботи з файлами по введенню/виведенню.
Потокові класи походять від спільного предка - класу ios і тому успадковують його функціональність. Щоб почати писати програму з використанням введення/виведення на мові С++, слід обов'язково виконати в програмі:
#include <fstream>
Клас fstream є нащадком класів istream і ostream. Ці ж класи є батьками класів ifstream і оfstream. Клас fstream використовується для організації введення/виведення (тобто читання-запису) в один і той же файл.
Класи ifstream, оfstream - для організації відповідно введення (читання) файлу і виведення (записи в файл). У свою чергу, екземплярами класів istream, ostream є cin, cout, cerr, за допомогою яких здійснюється так зване стандартне введення/виведення - введення зі стандартного ввідного пристрою, яким за замовчуванням є клавіатура, і виведення на стандартний вивідний пристрій, яким за замовчуванням є екран. Таким чином, включення в програму класу fstream виявляється достатнім для організації як стандартного, так і файлового введення/виведення.
Файлове введення/виведення організоване за допомогою перевизначених в потокових класах операцій включення (<<) та вилучення (>>). Раніше ми бачили, що це операції зсуву вліво і зсуву вправо бітів у змінній типу int, але в поточних класах С++ вони знайшли нову функціональність.
Щоб працювати з файлом, його спочатку слід відкрити - зв'язати зі спеціальною структурою, в якій задаються характеристики файлу (розмір буфера введення/виведення, стан файлу, останній прочитаниї запис і т. п.). Зв'язок цей виконується за допомогою функції open (), що входить в один з класів, який визначає введення/виведення (fstream, istream, ostream). Тому, щоб виконати таку функцію, слід спочатку створити екземпляр відповідного класу, щоб отримати доступ до цієї функції. Якщо ми, наприклад, хочемо виконувати виведення у файл (тобто запис у нього), то слід створити екземпляр класу ostream:
ostream exp;
і потім виконати функцію exp.open (). У дужках повинні бути вказані параметри цієї функції: ім'я файлу і спосіб відкриття файлу, в якому задаються відомості про те, як користувач збирається працювати з файлом: читати його, писати в нього або робити щось ще.
Після того як файл відкритий для читання або запису, використовують операції включення-вилучення (<<, >>). Якщо використовувати приклад з примірником exp класу ostream, то можна записати, наприклад:
exp << "рядок тексту" << i << j << endl;
Тут i, j - деякі змінні (наприклад, int i; float j;), endl - кінець виводу і перехід на новий рядок.
Після того як робота з файлом закінчено, слід закрити файл, щоб розірвати зв'язок з тією структурою, з якою файл був пов'язаний при його відкритті. Це необхідно, щоб дати можливість іншим файлам "відкриватися".
Цей акт виконується за допомогою методу close () того ж екземпляра класу, який ми створювали, щоб виконати функцію open (). У нашому випадку слід було б написати:
exp.close ();
Дата добавления: 2015-07-10; просмотров: 134 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Лістинг 5 | | | Робота з класом ifstream |