std::get_money
|
|
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
<metanoindex/>
<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) ведет себя как будто следующий код был казнен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:Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
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) |
форматирует и выводит денежное значение (шаблон функции) |