Потоки вывода
Объект потока вывода является местом назначения для байтов. Три наиболее важных класса потока вывода — ostream
, ofstream
, и ostringstream
.
Класс ostream
с помощью производного класса basic_ostream
поддерживает стандартные объекты потока:
cout
стандартный вывод;cerr
стандартные ошибки с ограниченным буфером;clog
аналогичноcerr
, но с полной буферизацией.
Объекты редко создаются из ostream
; обычно используются предопределенные объекты. В некоторых случаях можно переназначить предопределенные объекты после запуска программы. Класс ostream
, который можно настроить для работы с буфером или без, наилучшим образом подходит для последовательного текстового вывода. Все функции базового класса, ios
, включены в ostream
. При построении объекта класса ostream
конструктору необходимо указать объект streambuf
.
Класс ofstream
поддерживает вывод в файл на диске. Если вам требуется диск только для вывода, создайте объект класса ofstream
. Можно указать, будут ли объекты ofstream
принимать двоичные или текстовые данные при создании объекта ofstream
или при вызове функции-члена open
для объекта. Многие параметры форматирования и функции-члены применяются к объектам ofstream
. Включается вся функциональность базовых классов ios
и ostream
.
Если в конструкторе указать имя файла, этот файл автоматически открывается при создании объекта. В противном случае можно использовать функцию-член open
после вызова конструктора по умолчанию.
Подобно функции времени выполнения sprintf_s
, класс ostringstream
поддерживает вывод в строки в памяти. Чтобы создать строку в памяти с помощью форматирования потока ввода-вывода, создайте объект класса ostringstream
.
В этом разделе
Построение объектов потока вывода
Использование операторов вставки и управление форматом
Функции-члены потока выходного файла
Перегрузка << оператора для собственных классов
Создание собственных манипуляторов без аргументов