Глава 13
Обзор потоков ввода-вывода
Потоковые классы предоставляют удобный интерфейс для обмена с широким спектром устройств ввода-вывода. Хотя потоки ввода-вывода не являются частью C++, они наглядно демонстрируют, насколько мощным инструментом может быть комплекс умело проработанных классов.
Потоки являются удобным средством управления вводом и выводом, не зависящим от конкретных устройств, с которыми происходит обмен. С потоками очень легко оперировать благодаря функциональной идентичности интерфейса и синтаксиса вывода на любые периферийные устройства — будь то экран, принтер или файл; то же самое верно и для ввода.
Без библиотек потоковых классов практически немыслим ввод и вывод — один из важнейших аспектов большинства программ. В этой главе вы узнаете, как использовать возможности потоков и как интегрировать ввод и вывод в создаваемые вами классы.
До появления библиотек потоковых классов были функции printf и scanf. Не хочется говорить про них ничего плохого, но они требовали от программистов знания массы символов формата и замысловатых правил составления операторов ввода-вывода. К тому же интерфейс этих функций был различен для разных физических устройств и вообще создавал слишком много предпосылок для ошибок.
Стоит подчеркнуть, что изучение C++ не может быть гладким и последовательным. Некоторые аспекты потоков ввода-вывода могут показаться поначалу необычными или даже странными. Но если пытаться осветить только те их стороны, которые не зависят от других средств языка, то и говорить будет особенно не о чем. Поэтому, дойдя до раздела "Написание манипуляторов потока", в котором начинается более сложный материал, вам стоит