Класи потокового вводу - виводу

У C++ ввід - вивід забезпечується підключенням до програми заголовного файлу <iostream>. Саме в цьому файлі оголошені класи, що підтримують операції вводу – виводу.

Система вводу – виводу мови C++ будується на два зв'язаних, але різних ієрархіях класів-шаблонів.

Перша ієрархія класів є похідною від класу нижнього рівня basic_streambuf.Цей клас надає базу для операцій нижнього рівня по вводу і виводу, а також забезпечує належну підтримку всієї системи вводу - виводу C++. Як правило, безпосередньо використовувати клас basic_streambuf в програмах не потрібно.

Ієрархія класів, з якою програми частіше за все мають справу, є похідною від класу basic_ios.Це клас вводу - виводу верхнього рівня, який забезпечує форматування, контроль помилок і підтримує інформацію про стан потоку вводу - виводу. Клас basic_ios є базовим для декількох похідних класів, серед яких класи basic_istream, basic_ostream і basic_iostream. Ці класи використовуються відповідно для створення потоків вводу, виводу і вводу - виводу.

Бібліотека вводу - виводу створює дві окремі спеціалізації ієрархій класів: одну для 8-розрядних символів та іншу для широких символів. У представленій нижче за табл. 9.2 показана відповідність імен класів-шаблонів їх версіям для 8-розрядних символів. Саме ці класи, як правило, використовуються в програмах на C++.

Таблиця 9.2

Класи вводу – виводу для роботи з 8-розрядними символами

Клас-шаблон Клас для 8-розрядних символів
basic_streambuf streambuf
basic_ios ios
basic_istream istream
basic_ostream ostream
basic_iostream iostream
basic_fstream fstream
basic_jfstream ifstream
basic_ofstream ofstream

 

У найбільш важливому з перелічених класів - класі ios міститься багато функцій і змінних - членів класу, які контролюють або відображають основні| операції потоку вводу - виводу.

9.3 Форматний ввід - вивід

Дотепер в усіх прикладах потокового вводу - виводу інформації використовувалися формати, що задаються в мові C++ за умовчанням.

Проте інформацію в програмах на мові C++ можна виводити в широкому діапазоні форматів її представлення. При цьому в системі вводу - виводу C++ можна форматувати дані так само, як це робиться в C з допомогою функціяprintf(). Крім того, можна змінювати певні параметри вводу інформації.