money_get (Clase)money_get Class

La plantilla de clase describe un objeto que puede actuar como una faceta de configuración regional para controlar las conversiones de secuencias de tipo CharType en valores monetarios.The class template describes an object that can serve as a locale facet to control conversions of sequences of type CharType to monetary values.

SintaxisSyntax

template <class CharType, class InputIterator = istreambuf_iterator<CharType>>
class money_get : public locale::facet;

ParámetrosParameters

CharTypeCharType
Tipo usado dentro de un programa para codificar los caracteres de una configuración regional.The type used within a program to encode characters in a locale.

InputIteratorInputIterator
Tipo de iterador del que las funciones get leen su entrada.The type of iterator from which the get functions read their input.

ObservacionesRemarks

Como ocurre con cualquier faceta de configuración regional, el identificador de objeto estático tiene un valor almacenado inicial de cero.As with any locale facet, the static object ID has an initial stored value of zero. El primer intento de acceso a su valor almacenado almacena un valor positivo único en id.The first attempt to access its stored value stores a unique positive value in id.

ConstructoresConstructors

ConstructorConstructor DescripciónDescription
money_getmoney_get Constructor de objetos de tipo money_get que se usan para extraer valores numéricos de secuencias que representan valores monetarios.The constructor for objects of type money_get that are used to extract numerical values from sequences representing monetary values.

TypedefsTypedefs

Nombre de tipoType name DescripciónDescription
char_typechar_type Tipo que se usa para describir un carácter empleado por una configuración regional.A type that is used to describe a character used by a locale.
iter_typeiter_type Tipo que describe un iterador de entrada.A type that describes an input iterator.
string_typestring_type Tipo que describe una cadena que contiene caracteres de tipo CharType.A type that describes a string containing characters of type CharType.

Funciones miembroMember functions

Función de miembroMember function DescripciónDescription
do_getdo_get Función virtual a la que se llama para extraer un valor numérico de una secuencia de caracteres que representa un valor monetario.A virtual function called to extracts a numerical value from a character sequence that represents a monetary value.
getget Extrae un valor numérico de una secuencia de caracteres que representa un valor monetario.Extracts a numerical value from a character sequence that represents a monetary value.

RequisitosRequirements

Encabezado:<locale>Header: <locale>

Espacio de nombres: stdNamespace: std

money_get:: char_typemoney_get::char_type

Tipo que se usa para describir un carácter empleado por una configuración regional.A type that is used to describe a character used by a locale.

typedef CharType char_type;

ObservacionesRemarks

El tipo es un sinónimo del parámetro de plantilla CharType.The type is a synonym for the template parameter CharType.

money_get::d o_getmoney_get::do_get

Función virtual a la que se llama para extraer un valor numérico de una secuencia de caracteres que representa un valor monetario.Virtual function called to extracts a numerical value from a character sequence that represents a monetary value.

virtual iter_type do_get(iter_type first,
    iter_type last,
    bool Intl,
    ios_base& Iosbase,
    ios_base::iostate& State,
    long double& val) const virtual iter_type do_get(iter_type first,
    iter_type last,
    bool Intl,
    ios_base& Iosbase,
    ios_base::iostate& State,
    string_type& val) const

ParámetrosParameters

lugarfirst
Iterador de entrada que se dirige al principio de la secuencia que se va a convertir.Input iterator addressing the beginning of the sequence to be converted.

guardadolast
Iterador de entrada que se dirige al final de la secuencia que se va a convertir.Input iterator addressing the end of the sequence to be converted.

IntlIntl
Un valor booleano que indica el tipo de símbolo de divisa esperado en la secuencia: true si es internacional, false si es nacional.A Boolean value indicating the type of currency symbol expected in the sequence: true if international, false if domestic.

IosbaseIosbase
Un formato de marca que cuando está establecido indica que el símbolo de moneda es opcional. De lo contrario, es obligatorio.A format flag which when set indicates that the currency symbol is optional; otherwise, it is required.

StateState
Establece los elementos de máscara de bits apropiados para el estado de la secuencia en función de si las operaciones se realizaron correctamente o no.Sets the appropriate bitmask elements for the stream state according to whether the operations succeeded or not.

Valval
Una cadena que almacena la secuencia convertida.A string storing the converted sequence.

Valor devueltoReturn Value

Un iterador de entrada que se dirige al primer elemento más allá del campo de entrada monetario.An input iterator addressing the first element beyond the monetary input field.

ObservacionesRemarks

La primera función miembro virtual protegida intenta hacer coincidir los elementos secuenciales, empezando al principio de la secuencia [ first, last) hasta que reconoce un campo de entrada monetario completo y que no esté vacío.The first virtual protected member function tries to match sequential elements beginning at first in the sequence [ first, last) until it has recognized a complete, nonempty monetary input field. Si se realiza correctamente, convierte este campo en una secuencia de uno o más dígitos decimales, de manera opcional precedida por un signo menos ( - ), para representar la cantidad y almacena el resultado en el objeto de string_type Val.If successful, it converts this field to a sequence of one or more decimal digits, optionally preceded by a minus sign ( -), to represent the amount and stores the result in the string_type object val. Devuelve un iterador que designa el primer elemento más allá del campo de entrada monetario.It returns an iterator designating the first element beyond the monetary input field. De lo contrario, la función almacena una secuencia vacía en Val y establece ios_base::failbit en State.Otherwise, the function stores an empty sequence in val and sets ios_base::failbit in State. Devuelve un iterador que designa el primer elemento más allá de cualquier prefijo de campo de entrada monetario válido.It returns an iterator designating the first element beyond any prefix of a valid monetary input field. En cualquier caso, si el valor devuelto es igual a last, la función establece ios_base::eofbit en State.In either case, if the return value equals last, the function sets ios_base::eofbit in State.

La segunda función miembro virtual protegida se comporta igual que la primera, salvo que, si se ejecuta correctamente, convierte la secuencia de dígitos con signo opcional en un valor de tipo long double y almacena ese valor en Val.The second virtual protected member function behaves the same as the first, except that if successful it converts the optionally signed digit sequence to a value of type long double and stores that value in val.

El formato de un campo de entrada monetaria viene determinado por la faceta de configuración regionalFAC devuelta por la llamada efectiva use_facet < moneypunct < CharType, intl>> ( iosbase.The format of a monetary input field is determined by the locale facetfac returned by the effective call use_facet < moneypunct< CharType, intl>>( iosbase. getloc).getloc).

De manera específica:Specifically:

  • fac.fac. neg_format determina el orden en el que aparecen los componentes del campo.neg_format determines the order in which components of the field occur.

  • fac.fac. curr_symbol determina la secuencia de elementos que constituye un símbolo de moneda.curr_symbol determines the sequence of elements that constitutes a currency symbol.

  • fac.fac. positive_sign determina la secuencia de elementos que constituye un signo positivo.positive_sign determines the sequence of elements that constitutes a positive sign.

  • fac.fac. negative_sign determina la secuencia de elementos que constituye un signo negativo.negative_sign determines the sequence of elements that constitutes a negative sign.

  • fac.fac. la agrupación determina cómo se agrupan los dígitos a la izquierda de cualquier separador decimal.grouping determines how digits are grouped to the left of any decimal point.

  • fac.fac. thousands_sep determina el elemento que separa grupos de dígitos a la izquierda de cualquier separador decimal.thousands_sep determines the element that separates groups of digits to the left of any decimal point.

  • fac.fac. decimal_point determina el elemento que separa los dígitos enteros de los dígitos de fracción.decimal_point determines the element that separates the integer digits from the fraction digits.

  • fac.fac. frac_digits determina el número de dígitos de fracción significativos a la derecha de cualquier separador decimal.frac_digits determines the number of significant fraction digits to the right of any decimal point. Al analizar una cantidad monetaria con más dígitos de fracción que a los que se llama mediante frac_digits, do_get detiene el análisis después de consumir frac_digits caracteres como máximo.When parsing a monetary amount with more fraction digits than are called for by frac_digits, do_get stops parsing after consuming at most frac_digits characters.

Si la cadena de signo ( fac.If the sign string ( fac. negative_sign o fac.negative_sign or fac. positive_sign) tiene más de un elemento, solo coincide con el primer elemento donde el elemento igual a money_base::sign aparece en el patrón de formato ( fac.positive_sign) has more than one element, only the first element is matched where the element equal to money_base::sign appears in the format pattern ( fac. neg_format).neg_format). Coincide con cualquier elemento restante al final del campo de entrada monetario.Any remaining elements are matched at the end of the monetary input field. Si ninguna cadena tiene un primer elemento que coincide con el siguiente elemento del campo de entrada monetario, la cadena de signo se toma como vacía y el signo es positivo.If neither string has a first element that matches the next element in the monetary input field, the sign string is taken as empty and the sign is positive.

Si iosbase.If iosbase. marcas & de showbase es distinto de cero, la cadena FAC.flags & showbase is nonzero, the string fac. curr_symbol debe coincidir donde el elemento igual a money_base::symbol aparece en el patrón de formato.curr_symbol must match where the element equal to money_base::symbol appears in the format pattern. De otro modo, si money_base::symbol se produce al final del patrón de formato y, si ningún elemento de la cadena de signo debe coincidir, no coincide con el símbolo de moneda.Otherwise, if money_base::symbol occurs at the end of the format pattern, and if no elements of the sign string remain to be matched, the currency symbol is not matched. De otro modo, coincide con el símbolo de moneda de manera opcional.Otherwise, the currency symbol is optionally matched.

Si ninguna instancia de fac.If no instances of fac. thousands_sep se produce en la parte de valor del campo de entrada monetario (donde el elemento igual a money_base::value aparece en el patrón de formato), no se impone ninguna restricción de agrupación.thousands_sep occur in the value portion of the monetary input field (where the element equal to money_base::value appears in the format pattern), no grouping constraint is imposed. De otro modo, cualquier restricción de agrupación impuesta por fac.Otherwise, any grouping constraints imposed by fac. grouping se aplica.grouping is enforced. Tenga en cuenta que la secuencia de dígitos resultante representa un entero cuyos dígitos decimales fac.Note that the resulting digit sequence represents an integer whose low-order fac. frac_digits de nivel bajo se colocan a la derecha del separador decimal.frac_digits decimal digits are considered to the right of the decimal point.

Coincide con el espacio en blanco arbitrario donde el elemento igual a money_base::space aparece en el patrón de formato, si aparece en otro lugar diferente que al final del patrón de formato.Arbitrary white space is matched where the element equal to money_base::space appears in the format pattern, if it appears other than at the end of the format pattern. De otro modo, no coincide con ningún espacio en blanco interno.Otherwise, no internal white space is matched. Un elemento CH se considera un espacio en blanco si use_facet < CType < CharType> > ( iosbase.An element ch is considered white space if use_facet < ctype< CharType> >( iosbase. getloc).getloc). es( ctype_base:: Space, CH) es true .is( ctype_base::space, ch) is true.

EjemploExample

Vea el ejemplo de get, que llama a do_get.See the example for get, which calls do_get.

money_get:: getmoney_get::get

Extrae un valor numérico de una secuencia de caracteres que representa un valor monetario.Extracts a numerical value from a character sequence that represents a monetary value.

iter_type get(iter_type first,
    iter_type last,
    bool Intl,
    ios_base& Iosbase,
    ios_base::iostate& State,
    long double& val) const;

iter_type get(iter_type first,
    iter_type last,
    bool Intl,
    ios_base& Iosbase,
    ios_base::iostate& State,
    string_type& val) const;

ParámetrosParameters

lugarfirst
Iterador de entrada que se dirige al principio de la secuencia que se va a convertir.Input iterator addressing the beginning of the sequence to be converted.

guardadolast
Iterador de entrada que se dirige al final de la secuencia que se va a convertir.Input iterator addressing the end of the sequence to be converted.

IntlIntl
Un valor booleano que indica el tipo de símbolo de divisa esperado en la secuencia: true si es internacional, false si es nacional.A Boolean value indicating the type of currency symbol expected in the sequence: true if international, false if domestic.

IosbaseIosbase
Un formato de marca que cuando está establecido indica que el símbolo de moneda es opcional. De lo contrario, es obligatorio.A format flag which when set indicates that the currency symbol is optional; otherwise, it is required

StateState
Establece los elementos de máscara de bits apropiados para el estado de la secuencia en función de si las operaciones se realizaron correctamente.Sets the appropriate bitmask elements for the stream state according to whether the operations succeeded.

Valval
Una cadena que almacena la secuencia convertida.A string storing the converted sequence.

Valor devueltoReturn Value

Un iterador de entrada que se dirige al primer elemento más allá del campo de entrada monetario.An input iterator addressing the first element beyond the monetary input field.

ObservacionesRemarks

Ambas funciones miembro devuelven do_get (first, last, Intl, Iosbase, State, val) .Both member functions return do_get(first, last, Intl, Iosbase, State, val).

EjemploExample

// money_get_get.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;

int main( )
{
   locale loc( "german_germany" );

   basic_stringstream< char > psz;
   psz << use_facet<moneypunct<char, 1> >(loc).curr_symbol() << "-1.000,56";
   basic_stringstream< char > psz2;
   psz2 << "-100056" << use_facet<moneypunct<char, 1> >(loc).curr_symbol();

   ios_base::iostate st = 0;
   long double fVal;

   psz.flags( psz.flags( )|ios_base::showbase );
   // Which forced the READING the currency symbol
   psz.imbue(loc);
   use_facet < money_get < char > >( loc ).
      get( basic_istream<char>::_Iter( psz.rdbuf( ) ),
           basic_istream<char>::_Iter( 0 ), true, psz, st, fVal );

   if ( st & ios_base::failbit )
      cout << "money_get(" << psz.str( ) << ", intl = 1) FAILED"
           << endl;
   else
      cout << "money_get(" << psz.str( ) << ", intl = 1) = "
           << fVal/100.0 << endl;

   use_facet < money_get < char > >( loc ).
      get(basic_istream<char>::_Iter(psz2.rdbuf( )),
          basic_istream<char>::_Iter(0), false, psz2, st, fVal);

   if ( st & ios_base::failbit )
      cout << "money_get(" << psz2.str( ) << ", intl = 0) FAILED"
           << endl;
   else
      cout << "money_get(" << psz2.str( ) << ", intl = 0) = "
           << fVal/100.0 << endl;
};

money_get:: iter_typemoney_get::iter_type

Tipo que describe un iterador de entrada.A type that describes an input iterator.

typedef InputIterator iter_type;

ObservacionesRemarks

El tipo es un sinónimo del parámetro de plantilla InputIterator.The type is a synonym for the template parameter InputIterator.

money_get:: money_getmoney_get::money_get

Constructor de objetos de tipo money_get que se usan para extraer valores numéricos de secuencias que representan valores monetarios.The constructor for objects of type money_get that are used to extract numerical values from sequences representing monetary values.

explicit money_get(size_t _Refs = 0);

ParámetrosParameters

_Refs_Refs
Valor entero que se usa para especificar el tipo de administración de memoria del objeto.Integer value used to specify the type of memory management for the object.

ObservacionesRemarks

Los valores posibles para el parámetro _Refs y su importancia son:The possible values for the _Refs parameter and their significance are:

  • 0: la vigencia del objeto se administra mediante las configuraciones regionales que lo contienen.0: The lifetime of the object is managed by the locales that contain it.

  • 1: la vigencia del objeto se debe administrar de manera manual.1: The lifetime of the object must be manually managed.

  • >1: estos valores no están definidos.> 1: These values are not defined.

No es posible mostrar ejemplos directos, porque el destructor está protegido.No direct examples are possible, because the destructor is protected.

El constructor inicializa su objeto base con locale::facet(_Refs).The constructor initializes its base object with locale::facet(_Refs).

money_get:: string_typemoney_get::string_type

Un tipo que describe una cadena que contiene caracteres de tipo CharType.A type that describes a string containing characters of type CharType.

typedef basic_string<CharType, Traits, Allocator> string_type;

ObservacionesRemarks

El tipo describe una especialización de la plantilla de clase basic_string.The type describes a specialization of class template basic_string.

Consulte tambiénSee also

<locale>
Clase de facetafacet Class
Seguridad para subprocesos en la biblioteca estándar de C++Thread Safety in the C++ Standard Library