Функции <iomanip>
Извлекает денежное значение из потока, используя указанный формат, и возвращает значение в параметре.
Параметры
amount
Извлеченное денежное значение.
use_intl
Если true , используется международный формат. Значение по умолчанию — false .
Примечания
Манипулятор возвращает объект, который при извлечении из потока str ведет себя как formatted input function , вызывающий функцию-член get для ограничения языкового стандарта money_get , связанного с str , с использованием use_intl для указания международного формата. Если успешно, вызов сохраняет в amount извлеченное денежное значение. Затем манипулятор возвращает str .
Money должен иметь тип long double или быть экземпляром basic_string с теми же параметрами элемента и признаков, что и str .
get_time
Извлекает значение времени из потока, используя указанный формат. Возвращает значение в параметре в виде структуры времени.
Параметры
time_ptr
Время в виде структуры времени.
time_format
Формат, используемый для получения значения времени.
Remarks
Манипулятор возвращает объект, который при извлечении из потока str ведет себя как formatted input function , вызывающий функцию-член get для ограничения языкового стандарта time_get , связанного с str , с использованием tptr для указания структуры времени и fmt для указания начала строки формата, завершающейся нулем. В случае успешного выполнения вызов хранит в структуре времени значения, связанные с полями извлеченного времени. Затем манипулятор возвращает str .
Пример
put_money
Вставляет денежный объем, используя указанный формат, в поток.
Параметры
amount
Денежная сумма для вставки в поток.
use_intl
true Если манипулятор должен использовать международный формат, false если он не должен.
Возвращаемое значение
Remarks
Манипулятор возвращает объект, который при вставке в поток str ведет себя как форматированная выходная функция, вызывающая функцию-член put для ограничения языкового стандарта money_put , связанного с str . В случае успешного выполнения вызов вставляет amount подходящий формат, используя use_intl для указания международного формата и str.fill() элемента заполнения. Затем манипулятор возвращает str .
Money должен иметь тип long double или быть экземпляром basic_string с теми же параметрами элемента и признаков, что и str .
put_time
Записывает значение времени из структуры времени в поток с использованием указанного формата.
Параметры
time_ptr
Значение времени для записи в поток в виде структуры времени.
time_format
Формат для записи значения времени.
Remarks
Манипулятор возвращает объект, который при вставке в поток str ведет себя как formatted output function . Функция вывода вызывает функцию-член put для ограничения языкового стандарта time_put , связанного с str . Выходная функция используется для time_ptr указания структуры времени и time_format указания начала строки формата, завершающейся null. В случае успешного выполнения вызов вставляет текст из строки формата и преобразованные значения из структуры времени. Затем манипулятор возвращает str .
quoted
(Новые возможности в C++14) Манипулятор iostream , обеспечивающий удобную круговую передачу строк в потоки и из нее с помощью >> операторов. <<
Параметры
str
char* , std::string строковый литерал или необработанный строковый литерал или широкая версия любого из них (например, ). wchar_t* std::wstring
delimiter
Указанный пользователем символ или двухбайтовый символ для использования в качестве разделителя для начала и конца строки.
escape
Указанный пользователем символ или двухбайтовый символ для использования в качестве escape-символа для escape-последовательностей в строке.
Remarks
Примеры
В этом примере показано, как использовать quoted с разделителем по умолчанию и escape-символ с помощью узких строк. Широкие строки также поддерживаются.
В следующем примере показано, как предоставить настраиваемый разделитель или escape-символ:
resetiosflags
Удаляет указанные флаги.
Параметры
mask
Флажки, которые нужно очистить.
Возвращаемое значение
Манипулятор возвращает объект, который при извлечении или вставке в поток, вызовы str.setf(ios_base::fmtflags, mask) , а затем возвращает str , см setf . и fmtflags . str
Пример
См. setw с примером использования resetiosflags .
setbase
Задает основание целых чисел.
Параметры
base
Основание числа.
Возвращаемое значение
Манипулятор возвращает объект, который при извлечении или вставке в поток str , вызовы str.setf(mask, ios_base::basefield) , а затем возвращается str , см. раздел ios_base::basefield . mask Здесь определяется следующим образом:
Если base значение равно 8, то mask имеет значение ios_base::oct .
Если base значение равно 10, то маска имеет значение ios_base::dec .
Если base значение равно 16, то mask имеет значение ios_base::hex .
Если base имеется какое-либо другое значение, то маска имеет значение ios_base::fmtflags(0) ‘.
Пример
См. setw с примером использования setbase .
setfill
Задает символ, который будет использоваться для заполнения пробелов на экране с выравниванием по правому краю.
Параметры
Ch
Задает символ, который будет использоваться для заполнения пробелов при показе с выравниванием по правому краю.
Возвращаемое значение
Манипулятор шаблона возвращает объект, который при извлечении или вставке в поток str , вызовы str.fill(Ch) и возврат. str Тип должен совпадать с типом Elem элемента для потока str .
Пример
См. setw с примером использования setfill .
setiosflags
Задает указанные флаги.
Параметры
mask
Флажки, которые нужно установить.
Возвращаемое значение
Манипулятор возвращает объект, который при извлечении или вставке в поток str , вызовы str.setf(mask) , а затем возвращается str , см. раздел setf .
Пример
См. setw с примером использования setiosflags .
setprecision
Задает точность для значений с плавающей запятой.
Параметры
Prec
Точность для значений с плавающей запятой.
Возвращаемое значение
Манипулятор возвращает объект, который при извлечении или вставке в поток str , вызовы str.precision(Prec) , а затем возвращается str , см. раздел precision .
Пример
См. setw с примером использования setprecision .
Ширина поля отображения для следующего элемента в потоке.
Параметры
Wide
Ширина поля отображения.
Возвращаемое значение
Манипулятор возвращает объект, который при извлечении или вставке в поток str , вызывается str.width(Wide) , а затем возвращается str . Для получения дополнительной информации см. width .
Remarks
setw задает ширину только для следующего элемента в потоке и должен быть вставлен перед каждым элементом, ширина которого требуется указать.
Форматированный ввод-вывод в C++
В этом уроке мы вернемся к используемым ранее операторам cin и cout для рассмотрения их в организации форматированного ввода-вывода. Для управления вводом-выводом в C++
используются :
- флаги форматированного ввода-вывода;
- манипуляторы форматирования.
Флаги позволяют установить параметры ввода-вывода, которые будут действовать во всех последующих операторах ввода-вывода до тех пор, пока не будут отменены. Манипуляторы вставляются в операторы cin(cout) и устанавливают параметры текущего оператора ввода-вывода.
Использование флагов
Флаги позволяют включить или выключить один из параметров вывода на экран. Для установки флага вывода используется следующая конструкция языка C++:
cout.setf(ios::flag)
Для снятия флага конструкция:
cout.unsetf(ios::flag)
Здесь flag — имя конкретного флага.
Если при выводе необходимо установить несколько флагов, то можно воспользоваться арифметической операцией «или» (|). В этом случае конструкция языка C++ будет такой:
cout.setf(ios::flag1 | ios::flag2 | ios::flag3)
В данном случае flag1, flag2, flag3 — имена устанавливаемых флагов вывода. В таблице ниже приведены некоторые флаги форматного вывода с примерами их использования.
Флаги удобно использовать в тех случаях, когда следует изменить параметры всех последующих операторов ввода-вывода. Использование большего количества флагов для управления одним оператором ввода-вывода не совсем удобно. Еще одним способом форматирования является использование манипуляторов непосредственно в операторах cin и cout.
Использование манипуляторов форматирования
Манипуляторы встраиваются непосредственно в операторы ввода-вывода. С одним из них (endl) вы уже знакомы. В таблице ниже приведены основные манипуляторы форматирования с примерами. Для корректного их использования необходимо подключить библиотеку iomanip с помощью оператора #include <iomanip>
Функция iomanip setpricision () в C ++ с примерами
Метод setprecision () библиотеки iomaip в C ++ используется для установки точности с плавающей запятой библиотеки ios на основе точности, указанной в качестве параметра этого метода.
Параметры: Этот метод принимает n в качестве параметра, который является целочисленным аргументом, соответствующим которому должна быть установлена точность с плавающей запятой.
Возвращаемое значение: этот метод ничего не возвращает. Он действует только как потоковые манипуляторы.
// C ++ код для демонстрации
// работа функции setprecision ()
#include <iomanip>
#include <ios>
#include <iostream>
using namespace std;
// Инициализация десятичного числа
double num = 3.142857142857;
cout << «Before setting the precision: \n»
cout << «Setting the precision using»
<< » setprecision to 5: \n»
cout << «Setting the precision using
«<<» setprecision to 9 : \n «
// C ++ код для демонстрации
// работа функции setprecision ()
#include <iomanip>
#include <ios>
#include <iostream>