Biblioteca iomanip de C ++ - función put_money

Descripción

Esta función accede a la secuencia de salida construyendo primero un objeto de tipo basic_ostream :: sentry. Luego (si la evaluación del objeto centinela es verdadera), llama a money_put :: put (usando la configuración regional seleccionada de la secuencia) para realizar tanto el formateo como las operaciones de inserción, ajustando los indicadores de estado internos de la secuencia en consecuencia. Finalmente, destruye el objeto centinela antes de regresar.

Se utiliza para insertar la representación de mon como un valor monetario en el flujo de salida al que se aplica.

Declaración

A continuación se muestra la declaración de la función std :: put_money.

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

Parámetros

mon- Valor monetario. moneyT será una instanciación long double o basic_string.

intl- verdadero para representaciones internacionales, falso en caso contrario. Esto se usa internamente para crear una instancia de la clase moneypunct adecuada.

Valor devuelto

Vuelve sin especificar. Esta función solo debe usarse como manipulador de flujo.

Los errores se señalan modificando los indicadores de estado internos de la transmisión:

bandera error
fallo La función no pudo formatear mon (también se puede configurar si falla la construcción de sentry).
badbit O la inserción en la secuencia falló o se produjo algún otro error (como cuando esta función detecta una excepción lanzada por una operación interna). Cuando se establece, la integridad de la secuencia puede haberse visto afectada.

Excepciones

Basic guarantee - si se lanza una excepción, el objeto está en un estado válido.

Basic guarantee - si se lanza una excepción, el objeto está en un estado válido.

Lanza una excepción de falla de tipo de miembro si la marca de estado de error resultante no es goodbit y las excepciones de miembro se establecieron para lanzar para ese estado.

Cualquier excepción lanzada por una operación interna es capturada y manejada por la función, configurando badbit. Si badbit se estableció en la última llamada a excepciones, la función vuelve a generar la excepción detectada.

Carreras de datos

Modifica el objeto de flujo donde se inserta.

El acceso simultáneo al mismo objeto de transmisión puede causar carreras de datos, excepto para los objetos de transmisión estándar (cout, cerr, clog, wcout, wcerr y wclog) cuando estos están sincronizados con stdio (en este caso, no se inician carreras de datos, aunque no las garantías se dan en el orden en que se insertan los caracteres de varios hilos).

Ejemplo

En el siguiente ejemplo se explica la función put_money.

#include <iostream>
#include <iomanip>

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

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

Price:10