Программирование и основы алгоритмизации. Макаров В.Л. - 82 стр.

UptoLike

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

82
Манипулятор потока setw и метод width устанавливают ширину поля
(т.е. число символов позиций, в которые значение будет выведено, или число
символов, которые будут введены). Если обрабатываемые значения имеют
меньше символов, чем заданная ширина поля, то для заполнения лишних по-
зиций используются заполняющие символы. По умолчанию заполняющими
символами являются пробелы, и
они вставляются перед значащими симво-
лами, т.е. происходит выравнивание вправо. Если число символов в обраба-
тываемом значении больше, чем заданная ширина поля, то лишние символы
не отсекаются и число печатается полностью. Установка ширины поля влия-
ет только на следующую операцию поместить в поток; затем ширина поля
устанавливается неявным образом
на 0, т.е. поля для представления выход-
ных значений будут просто такой ширины, которая необходима. Функция
width без аргументов возвращает текущую установку ширины поля. Запол-
няющие символы могут устанавливаться манипулятором setfill. Программа
на рис. 12.3 демонстрирует влияние ширины поля на результат вывода числа
25:
// Пример программы на использование манипулятора setw
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
main()
{ int n=25;
clrscr();
for(int i=0; i< 5; i++)
cout<<setw(i)<<n<<endl;
cout<<"\nНажмите любую клавишу ...";
getch( );
return 0;
}
Результаты выполнения программы:
25
25
25
25
25
Рис. 12.3
Из этого результата видно, что пока ширина поля меньше числа символов в
выводимом числе, она ни на что не влияет, а при большей ширине поля проис-
ходит выравнивание числа вправо. Такой же результат дает и программа на
рис. 12.4, в которой используется
метод width.