У 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(). Крім того, можна змінювати певні параметри вводу інформації.