Здавалка
Главная | Обратная связь

Лабораторна робота №7.



Потокові класи.

Мета. Навчитися програмувати ввід і вивід у С++, використовуючи об'єкти потокових класів стандартної бібліотеки С++.

Основний зміст роботи.

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

Основні теоретичні відомості.

Поняття потоку.

Потокові класи представляють об'єктно-орієнтований варіант функцій ANSI-C. Потік даних між джерелом і приймачем при цьому має наступні властивості:

- Джерело чи приймач даних визначається об'єктом потокового класу.

- Потоки використовуються для вводу-виводу високого рівня.

- Загальноприйняті стандартні С-функції вводу/виводу розроблені як функції потокових класів, щоб полегшити перехід від С-функцій до С++ класів.

- Потокові класи поділяються на три групи (шаблонів класів)

· basic_istream, basic_ostream – загальні потокові класи, що можуть бути зв'язані з будь-яким буферним об'єктом;

· basic_ifstream, basic_iostream – потокові класи для зчитування і запису файлів;

· basic_istringstream, basic_ostringstream – потокові класи для об'єктів-рядків.

- Кожен потоковий клас підтримує буферний об'єкт, що надає пам'ять для переданих даних, а також найважливіші функції вводу/виводу низького рівня для їх обробки.

- Базовим шаблоном класів basic_ios для (потокових класів) і basic_streambuf (для буферних класів) передаються по два параметра шаблона:

· перший параметр (char) визначає символьний тип;

· другий параметр (traits) – об'єкт типу ios_traits (шаблон класу), у якому заданий тип і функції специфічні для використаного символьного типу;

· для типів char і wchar_t утворені відповідні об'єкти типу ios_traits і потокові класи.

Приклад шаблона потокового класу.

template <class char, class traits = ios_traits <char>> class basic_istream: virtual public basic_ios <char, traits>;

Потокові класи в С++.

Бібліотека потокових класів С++ побудована на основі двох базових класів: ios і streambuf.

Клас streambuf забезпечує організацію і взаємозв'язок буферів вводу-виводу, розташовуваних у пам'яті, з фізичними пристроями вводу-виводу. Методи і дані класу streambuf програміст явно звичайно не використовує. Цей клас потрібний іншим класам бібліотеки вводу-виводу. Він доступний і програмісту для створення нових класів на основі вже існуючих.

Схема ієрархії

 

 


Клас ios містить засоби для форматованого вводу-виводу і перевірки помилок.

Схема ієрархії

 
 

 

 


istream – клас вхідних потоків;

ostream – клас вихідних потоків;

iostream – клас вводу-виводу;

istrstream – клас вхідних строкових потоків;

ifstream – клас вхідних файлових потоків і т.д.

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

iostream.h - для ios, ostream, istream.

strstream.h - для strstream, istrstream, ostrstream

fstream.h - для fstream, ifstream, ofstream







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.