Bibliothèque iomanip C ++ - fonction put_money

La description

Cette fonction accède à la séquence de sortie en construisant d'abord un objet de type basic_ostream :: sentry. Ensuite (si l'évaluation de l'objet sentinelle est vraie), il appelle money_put :: put (en utilisant les paramètres régionaux sélectionnés du flux) pour effectuer à la fois les opérations de formatage et d'insertion, en ajustant les indicateurs d'état internes du flux en conséquence. Enfin, il détruit l'objet sentinelle avant de revenir.

Il est utilisé pour insérer la représentation de mon en tant que valeur monétaire dans le flux de sortie auquel il est appliqué.

Déclaration

Voici la déclaration de la fonction std :: put_money.

template <class moneyT>
/*unspecified*/ put_money (const moneyT& mon, bool intl = false);

Paramètres

mon- Valeur monétaire. moneyT doit être soit un double long, soit une instanciation basic_string.

intl- vrai pour les représentations internationales, faux sinon. Ceci est utilisé en interne pour instancier la classe moneypunct appropriée.

Valeur de retour

Il retourne non spécifié. Cette fonction ne doit être utilisée que comme manipulateur de flux.

Les erreurs sont signalées en modifiant les indicateurs d'état internes du flux -

drapeau Erreur
échec La fonction n'a pas pu formater mon (elle peut également être définie si la construction de la sentinelle a échoué).
badbit Soit l'insertion sur le flux a échoué, soit une autre erreur s'est produite (par exemple lorsque cette fonction intercepte une exception levée par une opération interne). Lorsqu'elle est définie, l'intégrité du flux peut avoir été affectée.

Exceptions

Basic guarantee - si une exception est levée, l'objet est dans un état valide.

Basic guarantee - si une exception est levée, l'objet est dans un état valide.

Il lève une exception d'échec de type de membre si l'indicateur d'état d'erreur résultant n'est pas bon et que les exceptions de membre ont été définies pour être levées pour cet état.

Toute exception levée par une opération interne est interceptée et gérée par la fonction, définissant badbit. Si badbit a été défini lors du dernier appel à des exceptions, la fonction renvoie l'exception interceptée.

Courses de données

Modifie l'objet de flux où il est inséré.

L'accès simultané au même objet de flux peut provoquer des courses de données, sauf pour les objets de flux standard (cout, cerr, clog, wcout, wcerr et wclog) lorsque ceux-ci sont synchronisés avec stdio (dans ce cas, aucune course de données n'est lancée, bien que non des garanties sont données sur l'ordre dans lequel les caractères de plusieurs threads sont insérés).

Exemple

L'exemple ci-dessous explique la fonction put_money.

#include <iostream>
#include <iomanip>

int main () {
   std::cout << "Price:" << std::put_money(10.50L) << '\n';
   return 0;
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

Price:10