close
Пространства имён
Варианты
Действия

std::get_money

Материал из cppreference.com
< cpp | io | manip

<metanoindex/>

 
 
Библиотека ввода/вывода
Манипуляторы ввода/вывода
Функции print (C++23)
Ввод/вывод в стиле C
Буферы
(устарело в C++98)
Потоки
Абстракции
Файловый ввод/вывод
Ввод/вывод строк
Ввод/вывод массивов
(устарело в C++98)
(устарело в C++98)
(устарело в C++98)
Синхронизированный вывод
Типы
Интерфейс категорий ошибок
(C++11)
 
Манипуляторы ввода/вывода
Форматирование чисел с плавающей точкой
Целочисленное форматирование
Булево форматирование
Контроль ширины поля и заполнения
Другое форматирование
Обработка пробелов
Сброс вывода
Манипуляции с флагами состояния
Ввод/вывод времени и денежных едениц
(C++11)
(C++11)
(C++11)
(C++11)
Манипулятор заключения в кавычки
(C++14)
 
<tbody> </tbody>
Определено в заголовочном файле <iomanip>
template< class MoneyT > /*unspecified*/ get_money( MoneyT& mon, bool intl = false );
(начиная с C++11)

When used in an expression in >> get_money(mon, intl), parses the character input as a monetary value, as specified by the std::money_get facet of the locale currently imbued in in, and stores the value in mon.

This function behaves as a formatted input function.

Параметры

mon variable where monetary value will be written. Can be either long double or basic_string
intl expects to find required international currency strings if true, expects optional currency symbols otherwise

Возвращаемое значение

Возвращает объект неопределенного типа такой, что если in это имя выходного потока типа std::basic_istream<CharT, Traits>, то выражение in >> get_money(mon, intl) ведет себя как будто следующий код был казнен
Оригинал:
Returns an object of unspecified type such that if in is the name of an output stream of type std::basic_istream<CharT, Traits>, then the expression in >> get_money(mon, intl) behaves as if the following code was executed:
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

typedef std::istreambuf_iterator<CharT, Traits> Iter; typedef std::money_get<CharT, Iter> MoneyGet; std::ios_base::iostate err = std::ios_base::goodbit; const MoneyGet &mg = std::use_facet<MoneyGet>(in.getloc()); mg.get(Iter(in.rdbuf()), Iter(), intl, in, err, mon); if (std::ios_base::goodbit != err) out.setstate(err);

Пример

#include <iostream>
#include <sstream>
#include <locale>
#include <iomanip>
int main()
{
    std::istringstream in("$1,234.56 2.22 USD  3.33");
    long double v1, v2;
    std::string v3;
    in.imbue(std::locale("en_US.UTF-8"));
    in >> std::get_money(v1) >> std::get_money(v2) >> std::get_money(v3, true);

    std::cout << '"' << in.str() << "\" parsed as: "
              << v1 << ", " << v2 << ", " << v3 << '\n';
}

Вывод:

"$1,234.56 2.22 USD  3.33" parsed as: 123456, 222, 333

См. также

разбирает и конструирует денежное значение из входной последовательности символов
(шаблон класса) [править]
(C++11)
форматирует и выводит денежное значение
(шаблон функции) [править]