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