Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Робота з файлами



Функції для роботи з файлами оголошені в <fstream.h>. Оскільки клас fstream успадковує властивості класів iostream і ios, при роботі з файлами можна використовувати усі функції-члени і данні-члени цих класів. Файловий ввід-вивід (вивід) досягається при зв'язуванні вхідного (вихідного) потоку з файлом за допомогою змінної класу istream або fstream (перемінної класу оstream або fstream – для вводу).

Форма операторів визначення потокових змінних:

fstream ім'я_потоку (“ім'я_набору_даних”, ios::in) – для вводу,

fstream ім'я_потоку (“ім'я_набору_даних”, ios::out) – для виводу.

При такому визначенні потокових змінних відкриваються потоки. Якщо відкриття неможливе, потокова змінна має значення нуль.

Для файлів, зв'язаних з потоками, можна використовувати операції вставки і вилучення – з їх допомогою виконують форматований ввід-вивід. Неформатований (не викидає пробіли і не виконуює перетворення з зовнішньої форми представлення даних у внутрішню форму) ввід може бути виконано за допомогою наступних функцій – членів:

in get () – витягає з вхідного потоку і повертає один символ або EOF, якщо досягнуто кінець файлу.

istream& get (char&) – витягає з вхідного потоку і повертає один символ. Має нульове значення, якщо кінець файлу не досягнений.

istream& get (char * buf, int n, char delim = ‘\n’) – читає символи з потоку, поки не буде прочитано n символів або не зустрівся обмежник delim. Обмежник залишається в потоці і не включається в лічену послідовність.

istream& getline (char * buf, int n, char delim = '\n') – читає символи з потоку. Обмежник не включається в лічену послідовність. На відміну від get, обмежник витягається з потоку.

istream& read (char* buf, int n) – читає n байтів з потоку в двоїчному режимі.

ostream& put (char) – записує окремий символ у потік.

ostream& write (const char* buf, int n) – записує в потік n символів з буфера.

ostream& flush () – запис змісту потоку, тобто примусовий запис, незалежно від ступеня заповнення внутрішнього буфера потоку.

void open (char* dataname, int mode, int prot = filebuf::openprot) – відкриває набір даних і зв'язує з раніше створеною змінною потоку. Режим «для введення» задається як ios::in, режим для виводу – як ios::out, режим «для додавання» – як ios::app. Для відкриття потоку в двоїчному режимі константа ios::in поєднується (порозрядним АБО) з константою ios::binary. Приклад застосування open – у додатку.

void close () – закриває файл і відкріплює його від потоку. Оскільки звичайно файли закриваються автоматично, close застосовується, якщо файл потрібно «перевідкрити» в іншому режимі.

Функція int eof () повертає ненульове значення, якщо в потоці виявлена ознака кінця файлу.





Дата публикования: 2015-09-17; Прочитано: 151 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...