Составители:
Рубрика:
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
- …
- следующая ›
- последняя »