Составители:
Рубрика:
int i = 123;
cout
.width(7);
cout
.fill ('*');
cout
.setf(ios::left,ios::adjustfield);
cout<<i;
Результат:
123****
Если используется вывод каскадом, то ширина поля устанавливается по умолча-
нию после каждого вывода. Простой способ установки форматных переменных состоит
в использовании манипуляторов.
Манипуляторами называются функции, которые
можно включать в цепочку операций помещения и извлечения для форматирования дан-
ных. Пользоваться манипуляторами более удобно, чем методами установки флагов фор-
матирования. Манипуляторы делятся на простые, не требующие указания аргументов, и
параметризованные. Манипулятор получает ссылку на поток в качестве аргумента и воз-
вращают ссылку на тот же поток. Это позволяет использовать манипуляторы в каскадах.
Например:
cout << setw(4) <<i<< setw(6) <<j;
эквивалентно:
cout.width(4);
cout<<i;
cout.width (6);
cout
<<j;
В данном примере setw() есть параметризованный манипулятор, описанный в файле
iomanip.h. Стандартные манипуляторы представлены в таблице 4.4.
Таблица 4.4
Манипулятор Синтаксис Действие
dec cout<<dec, cin>>dec установка десятичного преобразования
hex cout<<hex, cin>>hex установка шестнадцатеричного преобразо-
вания
oct cout<<oct, cin>>oct установка восьмеричного преобразования
ws cin>>ws удаление пробелов
endl cout<<endl перевод строки и сброс потока
ends cout<<ends вставка 0-символа в конце строки
flush cout<<flush сброс потока
setbase(int) cout<<setbase(n) установка базы системы счисления n = (0,
8, 10, 16). Ноль - значение по умолчанию
(10-я)
resetiosflags
(long)
cin>>resetiosflags(l)
cout<<resetiosflags(1)
сброс форматных битов в аргументе 1
etiosflags(long) cin>>etiosflags(1)
cout<<etiosflags(1)
установка битов форматирования по аргу-
менту l
setfill(int) cin>>setfill(n)
cout<<setfill(n)
установка символа заполнения в n
setprecision(int) cin>>setprecision(n)
cout<<setprecision(n)
установка точности представления чисел с
плавающей точкой в n цифр
setw(int) cin>>setw(n)
cout<<setw(n)
установка ширины поля в n позиций
117
int i = 123;
cout.width(7);
cout.fill ('*');
cout.setf(ios::left,ios::adjustfield);
cout<>dec установка десятичного преобразования
hex cout<>hex установка шестнадцатеричного преобразо-
вания
oct cout<>oct установка восьмеричного преобразования
ws cin>>ws удаление пробелов
endl cout<>resetiosflags(l) сброс форматных битов в аргументе 1
(long) cout<>etiosflags(1) установка битов форматирования по аргу-
cout<>setfill(n) установка символа заполнения в n
cout<>setprecision(n) установка точности представления чисел с
cout<>setw(n) установка ширины поля в n позиций
cout< Страницы
- « первая
- ‹ предыдущая
- …
- 115
- 116
- 117
- 118
- 119
- …
- следующая ›
- последняя »
