logo search
Лабораторная работа 7new

Манипуляции.

Более простой способ изменить некоторые из переменных формата - в использовании специального оператора, называемого манипулятором. Манипуляторы используют поток как аргумент и возвращают ссылку на тот же поток, следовательно манипуляторы могут быть включены в цепочку вывода (или ввода) для изменения состояния потока в качестве побочного эффекта, без действительного вывода (или ввода). Например

cout<<setw(4)<<i<<setw(6)<<j;

эквивалентно

cout.width(4);

cout<<i;

cout.width(6);

cout<<j;

setw - это параметризованный манипулятор, объявленный в iomanip.h. Другие параметризованные манипуляторы setbase, setfill, setprecision, setiosflags и resetiosflags работают так же. Чтобы использовать их в Вашей программе должен быть включен iomanip.h. Вы можете написать собственные манипуляторы без параметров:

ostream& dingy( ostream& os)

{

return os << "\a\a";

}

...

cout << i << dingy << j;

Непараметризованные манипуляторы dec, hex и oct (объявленные в iostream.h) не имеют параметров и просто изменяют основание преобразования (и оставляют ее измененной):

int i = 36;

cout << dec << i << " "

<< hex << i << "

<< oct << i << endl;

// показывает 36 24 44