Программирование. Принципы и практика использования C++ Исправленное издание, стр. 429

Объект класса
istream
Объект класса
iostreamistreamostreamstreambufiostreamСуществуют три стандартных потока.

Б.7.1. Иерархия потоков ввода-вывода
Поток
istreamstringostreamstring
Поток можно открыть либо с помощью конструктора, либо вызова функции
open()
Для файловых потоков имя файлов представляет собой строку в стиле языка С.
Открыть файл можно в одном из режимов, приведенных ниже.

В каждом из этих режимов открытие файла может зависеть от операционной системы и ее возможностей учесть требование программиста открыть файл именно так, а не иначе. В результате поток может не оказаться в состоянии
good()void my_code(ostream& os); // функция my_code может использовать // любой поток выводаostringstream os; // буква "o" означает "для вывода"ofstream of("my_file");if (!of) error("невозможно открыть 'my_file' для записи");my_code(os); // используется объект класса stringmy_code(of); // используется файлСм. раздел 11.3.
Б.7.2. Обработка ошибок
Поток
iostream
Используя функцию
s.exceptions()iostreamgood()Любая операция, в результате которой поток не находится в состоянии
good()Объект класса
iostreamiostreamgood()X x; // "буфер ввода" для хранения одного значения типа Xwhile (cin>>x) { // какие-то действия с объектом x}// мы окажемся в этой точке, если оператор >> не сможет прочитать// очередной объект класса X из потока cinБ.7.3. Операции ввода
Почти все операции ввода описаны в заголовке
<istream>string<string>
Если не указано иное, операция ввода возвращает ссылку на объект класса
istreamcin>>x>>y
Функции
get() getline()p[0]0getline()tget()read(p,n)0Б.7.4. Операции вывода
Почти все операции вывода описаны в заголовке
<ostream>string<string>
Если не указано иное, операции вставки в поток
ostreamcout << x<<yБ.7.5. Форматирование
Формат потока ввода-вывода управляется комбинацией типа объекта, состояния потока, информацией о локализации (см. раздел
<locale>