Язык С++ и программирование на нем. Рейзлин В.И. - 163 стр.

UptoLike

Составители: 

165
ввода-вывода
Классы буферов для потоков
Streambuf Абстрактный базовый класс буфера потока
filebuf Класс буфера потока для дисковых файлов
s trs treambuf Класс буфера потока для строк
stdiobuf Класс буфера потока для стандартных файлов
ввода-вывода
Назначение почти всех классов следует из их названия. Классы
группы _withassign являются производными соответствующих потоко-
вых классов без этого окончания. Они перегружают операцию присваи-
вания, что позволяет изменять указатель на используемый классом бу-
фер.
Потоки ввода-вывода C++ предоставляют некоторые преимуще-
ства по сравнению с функциями ввода-вывода библиотеки С.
Безопасность типов. Сравним вызов функций библиотеки С и
использование стандартных потоков С++. Вызов функции printf() вы-
глядит следующим образом:
#include <stdio.h>
. . .
int n = 12;
char name[] = ”Вывод строки на экран\n”;
printf(”%d %s”, i, name);
Этот вызов приведет к следующей правильной печати:
12 Вывод строки на экран
Но если по невнимательности поменять местами аргументы для
printf(), ошибка обнаружится только во время исполнения программы.
Может произойти все что угодно от странного вывода до краха систе-
мы. Этого не может случиться в случае использования стандартных по-
токов:
#include <iostream.h>
cout << i <<‘ ‘ << name << ‘\n;