std::put_money
De cppreference.com
Definido en el archivo de encabezado <iomanip> | ||
template<class MoneyT > /*no especificado*/ put_money(const MoneyT& mon, bool intl =false); | (desde C++11) | |
Cuando se utiliza en una expresión out << put_money(mon, intl), convierte el valor monetario mon a su representación en caracteres según lo especificado por la faceta std::money_put de la configuración regional actualmente imbuida en out.
La operación de inserción en out << put_money(mon, intl) se comporta como una FunciónDeSalidaConFormato.
Contenido |
[editar]Parámetros
mon | - | Un valor monetario, ya sea longdouble o std::basic_string. |
intl | - | Utilizar cadenas de moneda internacionales si es true, utilizar símbolos de moneda en caso contrario. |
[editar]Valor de retorno
Un objeto de tipo no especificado tal que
- si out es un objeto de tipo std::basic_ostream<CharT, Traits>, la expresión out << put_money(mon, intl)
- tiene tipo std::basic_ostream<CharT, Traits>&
- tiene valor out
- se comporta como una FormattedOutputFunction que llama a f(out, mon, intl)
donde la función f se define como:
template<class CharT, class Traits, class MoneyT>void f(std::basic_ios<CharT, Traits>& str, const MoneyT& mon, bool intl){using Iter =std::ostreambuf_iterator<CharT, Traits>;using MoneyPut =std::money_put<CharT, Iter>; const MoneyPut& mp =std::use_facet<MoneyPut>(str.getloc());const Iter end = mp.put(Iter(str.rdbuf()), intl, str, str.fill(), mon); si (end.failed()) str.setstate(std::ios_base::badbit);}
[editar]Ejemplo
Ejecuta este código
#include <iomanip>#include <iostream> int main(){longdouble mon =123.45;// o std::string mon = "123.45"; std::cout.imbue(std::locale("en_US.UTF-8"));std::cout<<std::showbase<<"en_US: "<< std::put_money(mon)<<" o "<< std::put_money(mon, true)<<'\n'; std::cout.imbue(std::locale("ru_RU.UTF-8"));std::cout<<"ru_RU: "<< std::put_money(mon)<<" o "<< std::put_money(mon, true)<<'\n'; std::cout.imbue(std::locale("ja_JP.UTF-8"));std::cout<<"ja_JP: "<< std::put_money(mon)<<" o "<< std::put_money(mon, true)<<'\n';}
Posible salida:
en_US: $1.23 o USD 1.23 ru_RU: 1.23 руб o 1.23 RUB ja_JP: ¥123 o JPY 123
[editar]Véase también
Formatos de un valor monetario para la salida como una secuencia de caracteres. (plantilla de clase) | |
(C++11) | Analiza un valor monetario. (plantilla de función) |