Namespaces
Variants

std:: put_money

From cppreference.net
< cpp ‎ | io ‎ | manip
Défini dans l'en-tête <iomanip>
template < class MoneyT >
/*non spécifié*/ put_money ( const MoneyT & mon, bool intl = false ) ;
(depuis C++11)

Lorsqu'il est utilisé dans une expression out << put_money ( mon, intl ) , convertit la valeur monétaire mon en sa représentation caractère telle que spécifiée par le facet std::money_put de la locale actuellement imbriquée dans out .

L'opération d'insertion dans out << put_money ( mon, intl ) se comporte comme une FormattedOutputFunction .

Table des matières

Paramètres

mon - une valeur monétaire, soit long double ou std::basic_string
intl - utiliser les chaînes de devises internationales si true , utiliser les symboles monétaires sinon

Valeur de retour

Un objet de type non spécifié tel que

où la fonction f est définie comme :

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);
    if (end.failed())
        str.setstate(std::ios_base::badbit);
}

Exemple

#include <iomanip>
#include <iostream>
int main()
{
    long double mon = 123.45; // or std::string mon = "123.45";
    std::cout.imbue(std::locale("en_US.UTF-8"));
    std::cout << std::showbase
              << "en_US: " << std::put_money(mon)
              << " or " << std::put_money(mon, true) << '\n';
    std::cout.imbue(std::locale("ru_RU.UTF-8"));
    std::cout << "ru_RU: " << std::put_money(mon)
              << " or " << std::put_money(mon, true) << '\n';
    std::cout.imbue(std::locale("ja_JP.UTF-8"));
    std::cout << "ja_JP: " << std::put_money(mon)
              << " or " << std::put_money(mon, true) << '\n';
}

Sortie possible :

en_US: $1.23 or USD  1.23
ru_RU: 1.23 руб or 1.23 RUB 
ja_JP: ¥123 or JPY  123

Voir aussi

formate une valeur monétaire pour la sortie sous forme de séquence de caractères
(modèle de classe)
(C++11)
analyse une valeur monétaire
(modèle de fonction)