Описание тега iostream

Библиотека iostream C++ - это объектно-ориентированная библиотека, которая обеспечивает функции ввода и вывода с использованием потоков. Классы iostreams поддерживают типобезопасный ввод-вывод встроенных типов и могут быть расширены для поддержки определяемых пользователем типов путем перегрузки операторов >> и <<.

Используйте этот тег для вопросов об использовании iostreams, включая написание перегруженных операторов для ваших собственных типов.

Стандартная библиотека C++ определяет std::istream, std::ostream а также std::iostream базовые классы, а также стандартные объекты потока std::cin, std::cout а также std::cerrи производные типы iostream для чтения / записи файлов и строк. Объект iostream отвечает за операции форматирования (например, преобразование целого числа1234 в строку "1234" или наоборот), но использует буфер потока (объект, производный от std::streambuf) для взаимодействия с базовым потоком данных. Буфер потока выполняет любую буферизацию символов, управляет позицией потока и транспортирует символы на / от внешнего устройства, такого как файл.

Iostreams используют локали для поддержки интернационализации и реализованы как иерархия шаблонов классов для поддержки различных типов символов, так что std::istream фактически является typedef для специализации std::basic_istream<char, std::char_traits<char>>. Первый параметр шаблона - это тип символа, используемый потоком, а второй - класс характеристик, который обеспечивает операции для работы с типом символа.

Краткое введение в iostreams можно найти в главе 3: Обзор стандартной библиотеки в TC++PL Страуструпа. Стандартная библиотека C++ Джосуттиса дает больше информации. Наиболее подробный справочник по использованию и расширению iostreams - это стандартные C++ IOStreams и Locales от Langer & Kreft (см. Отрывок о буферах потока).