money_get::do_get
La función virtual denominada a extrae un valor numérico de una secuencia de caracteres que representa un valor monetario.
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ámetros
_First
Iterador de la entrada que indica al principio de la secuencia que se va a convertir._Last
Entre el iterador que indica al final de la secuencia que se va a convertir._Intl
Un valor booleano que indica el tipo de símbolo de divisa esperado en la secuencia: TRUE si internacional, Falso si es nacional._Iosbase
Un indicador de formato que cuando el conjunto indica que el símbolo de moneda es opcional; si no, se requiere._State
Establece los elementos adecuados de la máscara de bits para el estado de la secuencia según si las operaciones se completaron correctamente o no._Val
una cadena que almacena la secuencia convertida.
Valor devuelto
Un iterador de entrada que dirige el primer elemento más allá del campo de entrada monetario.
Comentarios
La primera función protegida miembro virtual intenta hacer coincidir los elementos secuenciales que comienzan en primero en la secuencia [_First, _Last) hasta que haya reconocido un campo de entrada monetario completo, no vacío.Si es correcto, convierte este campo a una secuencia de uno o más dígitos decimales, precedida opcionalmente por un signo menos (–), para representar la cantidad y almacena el resultado en el objeto _Valde string_type .Devuelve un iterador que designa el primer elemento más allá del campo de entrada monetario.si no, la función almacena una secuencia vacía en _Val y establece ios_base::failbit en _State.Devuelve un iterador que designa el primer elemento más allá de cualquier prefijo de un campo de entrada monetario válido.En cualquier caso, si el valor devuelto es igual a _Last, la función establece ios_base::eofbit en _State.
La segunda función protegida miembro virtual se comporta igual que el primero, pero si correctamente convierte la secuencia opcionalmente firmada de dígitos en un valor de long double escrito y almacena el valor en _Val.
El formato de un campo de entrada monetario viene determinado por faceta de configuración regional fac devuelto por la llamada eficaz use_facet <moneypunct<CharType, internacional>> (iosbase.getloc).
De manera específica:
fac.negative_format determina el orden en que los componentes del campo.
fac.curr_symbol determina la secuencia de elementos que constituye un símbolo de moneda.
fac.positive_sign determina la secuencia de elementos que constituye un signo positivo.
fac.negative_sign determina la secuencia de elementos que constituye un signo negativo.
fac.el agrupar determina cómo los dígitos se agrupan a la izquierda del separador decimal.
fac.thousands_sep determina el elemento que separa los grupos de dígitos a la izquierda del separador decimal.
fac.decimal_point determina el elemento que separa los dígitos integrales de los dígitos de fracción.
fac.frac_digits determina el número de dígitos significativos de la fracción a la derecha del separador decimal.Al analizar un importe monetario con más dígitos de fracción que se llaman para por frac_digits, do_get detiene el análisis después de consumir a lo más caracteres de frac_digits .
Si la cadena del signo (fac.negative_sign o fac.positive_sign) tiene más de un elemento, sólo se coincide con el primer elemento donde el elemento igual a money_base:: signo aparece en el modelo de formato (fac.neg_format).Cualquier elemento restante se corresponde con el fin del campo de entrada monetario.Si ninguna de las dos cadenas tiene un primer elemento que coincida con el siguiente elemento en el campo de entrada monetario, se toma la cadena de signo como vacío y el signo es positivo.
Si el &showbasede iosbase.flagses distinto de cero, el fac de la cadena**. debecurr_symbol** coincidir con donde el elemento igual al money_base**:: el símbolo aparece** en el modelo de formato.Si no, si money_base:: símbolo aparece al final del modelo de formato, y si no queda ninguna elementos string de signo ser con, el símbolo de moneda no coincide.Si no, el símbolo de divisa coincide opcionalmente.
Si ninguna instancia de fac.thousands_sep aparece en la parte del valor del campo de entrada monetario (donde el elemento igual a money_base::Valor aparece en el modelo de formato), ninguna agrupación que se impone la restricción.Si no, cualquier restricción de agrupación impuso por fac. se aplicael agrupar .Observe que la secuencia resultante de dígito representa un entero cuyo facde orden inferior. los dígitos decimales defrac_digits se consideran a la derecha del separador decimal.
El espacio en blanco arbitrario coincide donde el elemento igual a money_base:: espacio aparece en el modelo de formato, si aparece distinto en el final del modelo de formato.Si no, no coincide ningún espacio en blanco internos.un elemento ch se considera espacio en blanco si use_facet <C<CharType> > (iosbase.getloc).es(ctype_base:: espacio, ch) es TRUE.
Ejemplo
Vea el ejemplo para obtenga, que llama a do_get.
Requisitos
encabezado: <configuración regional>
espacio de nombres: std