Лабораторна робота №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 Все права принадлежат авторам размещенных материалов.
|