Compartir a través de


num_get::do_get

Una función virtual a la que se denomina extrae un numérico o un valor booleano de una secuencia de caracteres.

virtual iter_type do_get(
    iter_type _First,
    iter_type _Last,
    ios_base& _Iosbase,
    ios_base::iostate& _State,
    long& _Val
) const;virtual iter_type do_get(
    iter_type _First,
    iter_type _Last,
    ios_base& _Iosbase,
    ios_base::iostate& _State,
    unsigned short& _Val
) const;
virtual iter_type do_get(
    iter_type _First,
    iter_type _Last,
    ios_base& _Iosbase,
    ios_base::iostate& _State,
    unsigned int& _Val
) const;
virtual iter_type do_get(
    iter_type _First,
    iter_type _Last,
    ios_base& _Iosbase,
    ios_base::iostate& _State,
    unsigned long& _Val
) const;
virtual iter_type do_get(
    iter_type _First, 
    iter_type _Last,
    ios_base& _Iosbase, 
    ios_base::iostate& _State,
    long long& _Val
) const;
virtual iter_type do_get(
    iter_type _First, 
    iter_type _Last,
    ios_base& _Iosbase, 
    ios_base::iostate& _State,
    unsigned long long& _Val
) const;
virtual iter_type do_get(
    iter_type _First,
    iter_type _Last,
    ios_base& _Iosbase,
    ios_base::iostate& _State,
    float& _Val
) const;
virtual iter_type do_get(
    iter_type _First,
    iter_type _Last,
    ios_base& _Iosbase,
    ios_base::iostate& _State,
    double& _Val
) const;
virtual iter_type do_get(
    iter_type _First,
    iter_type _Last,
    ios_base& _Iosbase,
    ios_base::iostate& _State,
    long double& _Val
) const;
virtual iter_type do_get(
    iter_type _First,
    iter_type _Last,
    ios_base& _Iosbase,
    ios_base::iostate& _State,
    void *& _Val
) const;
virtual iter_type do_get(
    iter_type _First,
    iter_type _Last,
    ios_base& _Iosbase,
    ios_base::iostate& _State,
    bool& _Val
) const;

Parámetros

  • _First
    El inicio del intervalo de los caracteres de los que para leer el número.

  • _Last
    El final del intervalo de los caracteres de los que para leer el número.

  • _Iosbase
    ios_base cuyos indicadores son utilizados por la conversión.

  • _State
    El estado al que el failbit (vea ios_base:: iostate) se agrega al error.

  • _Val
    Valor que se ha leído.

Valor devuelto

El iterador después del valor se ha leído.

Comentarios

La primera función protegida miembro virtual,

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

long& _Val

) const;

coinciden con los elementos secuenciales que comienzan en _First en la secuencia [_First,_Last) hasta que haya reconocido un campo de entrada entero rellenada, no vacío.Si es correcta, convierte este campo a su valor equivalente como longtipo, y almacena el resultado en _Val.Devuelve un iterador que designa el primer elemento más allá del campo de entrada numérico.si no, la función no almacena nada 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 entero válido.En cualquier caso, si el valor devuelto es igual a last, la función establece ios_base::eofbit en state.

El campo de entrada entero se convierte en las mismas reglas que las funciones de análisis para buscar y convertir una serie de elementos de char de un archivo.(Cada uno de estos elementos de char es supone para asignar un elemento equivalente de Elem escrito por un simple, uno por, asignando.) Se determina la especificación de conversión equivalente de análisis como sigue:

si iosbase.ios_base::flags() & ios_base::basefield == ios_base::Oct, la especificación de conversión es lo.

si iosbase.flags() & ios_base::basefield == ios_base::hex, la especificación de conversión es lx.

si iosbase.flags() & ios_base::basefield == 0, la especificación de conversión es li.

si no, la especificación de conversión es ld.

El formato de un campo de entrada entero se resuelve adicional por faceta de configuración regionalfac devuelto por la llamada use_facet<numpunct<Elem>(iosbase.ios_base::getloc()).De manera específica:

fac.numpunct::grouping() determina cómo los dígitos se agrupan a la izquierda del separador decimal

fac.numpunct::thousands_sep() determina la secuencia que separa los grupos de dígitos a la izquierda del separador decimal.

Si ninguna instancia de fac.thousands_sep() aparecen en el campo de entrada numérico, no se impone ninguna restricción de agrupación.Si no, cualquier restricción de agrupación impuesta por fac.grouping() se aplica y se quitan los separadores antes de la conversión de análisis aparece.

La cuarta función protegida miembro virtual:

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

unsigned long& _Val

) const;

se comporta igual que el primero, salvo que reemplaza una especificación de conversión de ld con lu.Si correctamente convierte el campo de entrada numérico a un valor de unsigned long escrito y almacena el valor en _Val.

La quinta función protegida miembro virtual:

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

long long& _Val

) const;

se comporta igual que el primero, salvo que reemplaza una especificación de conversión de ld con lld.Si correctamente convierte el campo de entrada numérico a un valor de long long escrito y almacena el valor en _Val.

La sexta función protegida miembro virtual:

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

unsigned long long& _Val

) const;

se comporta igual que el primero, salvo que reemplaza una especificación de conversión de ld con llu.Si correctamente convierte el campo de entrada numérico a un valor de unsigned long long escrito y almacena el valor en _Val.

La séptima función protegida miembro virtual:

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

float& _Val

) const;

se comporta igual que el primero, salvo que se esfuerza para un campo de entrada flotante completo, no vacío.fac.numpunct::decimal_point() determina la secuencia que separa los dígitos integrales de los dígitos de fracción.El especificador equivalente de conversión de análisis es lf.

La octava función protegida miembro virtual:

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

double& _Val

) const;

se comporta igual que el primero, salvo que se esfuerza para un campo de entrada flotante completo, no vacío.fac.numpunct::decimal_point() determina la secuencia que separa los dígitos integrales de los dígitos de fracción.El especificador equivalente de conversión de análisis es lf.

La novena función protegida miembro virtual:

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

long double& _Val

) const;

se comporta igual que el octavos, salvo que el especificador equivalente de conversión de análisis es Lf.

La novena función protegida miembro virtual:

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

void *& _Val

) const;

se comportará el primero, salvo que el especificador equivalente de conversión de análisis es p.

(La undécima) función protegida virtual del último miembro:

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

bool& _Val

) const;

se comporta igual que el primero, salvo que se esfuerza para un campo de entrada boolean completo, no vacío.Si correctamente convierte el campo de entrada boolean en un valor de bool escrito y almacena el valor en _Val.

Un campo de entrada boolean toma uno de dos formas.Si iosbase.flags() & ios_base::boolalpha es false, es igual que un campo de entrada entero, salvo que el valor convertido debe ser 0 (para false) o 1 (true).Si no, la secuencia debe coincidir con fac.numpunct::falsename() (para false), o fac.numpunct::truename() (en true).

Ejemplo

Vea el ejemplo para obtenga, donde la función miembro virtual llaman do_get.

Requisitos

encabezado: <configuración regional>

espacio de nombres: std

Vea también

Referencia

num_get Class