Libreria iomanip C ++ - Funzione put_money

Descrizione

Questa funzione accede alla sequenza di output costruendo prima un oggetto di tipo basic_ostream :: sentry. Quindi (se la valutazione dell'oggetto sentry è vera), chiama money_put :: put (utilizzando la locale selezionata dello stream) per eseguire sia la formattazione che le operazioni di inserimento, regolando di conseguenza i flag di stato interni dello stream. Infine, distrugge l'oggetto sentinella prima di tornare.

Viene utilizzato per inserire la rappresentazione di mon come valore monetario nel flusso di output a cui è applicato.

Dichiarazione

Di seguito è riportata la dichiarazione per la funzione std :: put_money.

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

Parametri

mon- Valore monetario. moneyT deve essere long double o un'istanza basic_string.

intl- vero per le rappresentanze internazionali, falso altrimenti. Viene utilizzato internamente per istanziare la classe moneypunct appropriata.

Valore di ritorno

Ritorna non specificato. Questa funzione deve essere utilizzata solo come manipolatore di flusso.

Gli errori vengono segnalati modificando i flag di stato interni del flusso -

bandiera errore
failbit La funzione non è riuscita a formattare mon (può essere impostata anche se la costruzione di sentry fallisce).
badbit O l'inserimento nello stream non è riuscito o si è verificato un altro errore (come quando questa funzione rileva un'eccezione generata da un'operazione interna) .Quando impostato, l'integrità dello stream potrebbe essere stata influenzata.

Eccezioni

Basic guarantee - se viene generata un'eccezione, l'oggetto è in uno stato valido.

Basic guarantee - se viene generata un'eccezione, l'oggetto è in uno stato valido.

Genera un'eccezione di errore del tipo di membro se il flag di stato dell'errore risultante non è goodbit e le eccezioni dei membri sono state impostate da lanciare per quello stato.

Qualsiasi eccezione generata da un'operazione interna viene rilevata e gestita dalla funzione, impostando badbit. Se il badbit è stato impostato nell'ultima chiamata alle eccezioni, la funzione rigira l'eccezione rilevata.

Gare di dati

Modifica l'oggetto stream in cui è inserito.

L'accesso simultaneo allo stesso oggetto stream può causare gare di dati, ad eccezione degli oggetti stream standard (cout, cerr, clog, wcout, wcerr e wclog) quando questi sono sincronizzati con stdio (in questo caso, non vengono avviate gare di dati, sebbene non vengono fornite garanzie sull'ordine in cui vengono inseriti i caratteri di più thread).

Esempio

Nell'esempio seguente viene illustrata la funzione put_money.

#include <iostream>
#include <iomanip>

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

Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:

Price:10