Для вывода чисел с плавающей точкой
Для вывода целых чисел
dec; // устанавливает десятичную систему счисления
hex; // устанавливает шестнадцатеричную систему счисления
oct; // устанавливает восьмеричную систему счисления
setbase(int b); // вывод целых чисел в системе счисления с основанием b(10,8...)
show base; // показывает основание системы счисления
- по умолчанию используется универсальный формат, который наилучшим образом представляет число с точностью 6 значащих цифр:
float f=1234.56789;
cout<<f; // 1234.57
- научный формат, который представляет число десятичной дробью с одной цифрой перед точкой с показателем степени
cout<<scientific<<f; // 1.2345678e+03
- фиксированный формат представляет число как целую часть с дробной частью отделенной точкой. Точность определяет максимальное число цифр после точки. Точность устанавливается с помощью манипулятора setpresision(int n) n - цифр после точки
cout<<fixed<<f; // 1234.567890
bool valuet=true;
bool valuef=false;
cout<<valuet<<valuef; // 1 0
cout<<boolalpha<< valuet<<valuef; // true false
Дополнительно можно определить ширину вывода переменных в количестве символов:
setw(int n); // если строка или число длиннее, то будут выведены все setw(0)
А также задать символ для заполнения
setfill(int c);
cout<<setw(4)<<setfill(#)<<12; // ##12
Можно определить место размещения заполнителей. По умолчанию как видите заполнители размещаются до значения. Это аналогично записи:
cout<<setw(4)<<setfill('#')<<right<<12;
Можно наоборот:
cout<<setw(4)<<setfill('#')<<left<<12; // 12##
Важные манипуляторы:
endl; // заканчивается строка, т.е. вставляется символ '\n'
ends; // заканчивается строка записью '\0'
flush; // очистка буфера потока
Это лишь основные манипуляторы, которые вы можете использовать для форматирования. С остальными познакомьтесь самостоятельно:
Манипулятор | Действие на поток |
showbase noshowbase | инициирует отображение основания системы счисления |
showpos noshowpos | инициирует явное отображение знака (+) для положительных значений |
uppercase nouppercase | инициирует преобразование выводимых символов в верхний регистр |
showpoint noshowpoint | инициирует отображение десятичной точки при выводе вещественных чисел |
skipws noskipws | инициирует пропуск пробельных символов при вводе |
left | инициирует левое выравнивание, заполнение справа |
right | инициирует правое выравнивание, заполнение слева |
internal | инициирует внутреннее заполнение (между значением и знаком или основанием системы счисления) |
scientific | инициирует вывод вещественных значений в научном формате (d.ddddddddE+dd) |
fixed | инициирует вывод вещественных значений в фиксированном формате (d.dddddd) |
setbase (int base) | изменяет систему счисления (10, 8, 16) |
dec | инициирует вывод целочисленных значений в десятичной системе счисления |
oct | инициирует вывод целочисленных значений в восьмеричной системе счисления |
hex | инициирует вывод целочисленных значений в шестнадцатеричной системе счисления |
setfill (char n) | задает заполняющий символ |
setprecision (int n) | изменяет точность выводимых значений |
setw (int n) | задает ширину поля вывода |