Программирование на C и C++

Онлайн справочник программиста на C и C++

Манипуляторы и ввод/вывод в массив

Поскольку потоки для ввода/вывода в массив те же самые, что и другие потоки, то созданные вами манипуляторы могут использоваться также для ввода/вывода в массивы. Например, в разделе "Создание манипуляторов без параметров" был создан манипулятор для вывода setup(), который включал левое выравнивание и устанав­ливал ширину поля, равную 10, а в качестве символа заполнения определял знак $. Этот манипу­лятор может без изменений использоваться при выводе в массив, как показано ниже:

/* программа использует личный манипулятор для ввода/вывода в массив */
#include <strstrea.h>
#include <iostream.h>
#include <iomanip.h>
// настройка манипулятора вывода
ostream &setup(ostream &stream)
{
stream.setf(ios::left);
stream << setw(10) << setfill('$');
return stream;
}
int main()
{
char str[80];
ostrstream outs(str, sizeof(str));
outs << setup << 99 << ends;
cout << str << '\n';
return 0;
}