Compartir a través de


num_put::do_put

Una función virtual que se llama a para convertir un número en una secuencia de s de CharTypeque representa el número con formato para una configuración regional.

virtual iter_type do_put(
    iter_type _Dest,
    ios_base& _Iosbase,
    _Elem _Fill,
    bool _Val
) const;
virtual iter_type do_put(
    iter_type _Dest,
    ios_base& _Iosbase,
    _Elem _Fill,
    long _Val
) const;
virtual iter_type do_put(
    iter_type _Dest,
    ios_base& _Iosbase,
    _Elem _Fill,
    unsigned long _Val
) const;
virtual iter_type do_put(
    iter_type _Dest,
    ios_base& _Iosbase,
    _Elem _Fill,
    double _Val
) const;
virtual iter_type do_put(
    iter_type _Dest,
    ios_base& _Iosbase,
    _Elem _Fill,
    long double _Val
) const;
virtual iter_type do_put(
    iter_type _Dest,
    ios_base& _Iosbase,
    _Elem _Fill,
    const void * _Val
) const;
virtual iter_type do_put(
    iter_type _Dest,
    ios_base& _Iosbase,
    _Elem _Fill,
    const long long _Val
) const; virtual iter_type do_put(
    iter_type _Dest,
    ios_base& _Iosbase,
    _Elem _Fill,
    const unsigned long long _Val
) const;

Parámetros

  • _Next
    Un iterador que dirige el primer elemento de cadena inline.

  • _Iosbase
    Especifica la secuencia que contiene la configuración regional con la faceta de numpunct utilizada para puntuar la salida y marca para dar formato al resultado.

  • _Fill
    Un carácter que se utiliza para agregar espacios.

  • _Val
    El número o tipo booleano que debe ser generado.

Valor devuelto

Un iterador de salida las direcciones que la posición una más allá del último elemento generó.

Comentarios

La primera función protegida miembro virtual representa elementos secuenciales que comienzan en _Next para presentar un campo entero de salida del valor de _Val.La función devuelve un iterador que señala el lugar siguiente para insertar un elemento más allá del campo generado de salida entero.

El campo entero de salida generan las mismas reglas que las funciones de impresión para generar una serie de elementos de char en un archivo.Cada uno de estos elementos char es supone para asignar un elemento equivalente de CharType escrito por un simple, asignación unívoca.En una función de impresión completa un campo con o espacios o el dígito 0, sin embargo, do_put en su lugar utiliza relleno.Se determina la especificación de conversión equivalente de impresión como sigue:

  • Si iosbase.flagsy ==ios_base::basefield octios_base::, la especificación de conversión es el.

  • si iosbase.flags y ios_base**:: el hexadecimal ==** de basefieldios_base::, la especificación de conversión es lx.

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

si iosbase.ancho es distinto de cero, un ancho de campo de este valor work item.La función llama iosbase.ancho(0) para restablecer el ancho de campo en cero.

El relleno sólo aparece si el número mínimo de n elementos necesario especificar el campo de salida es menor que iosbase.ancho.Tal relleno consta de una secuencia de n – copias de ancho de relleno.El relleno aparece como sigue:

  • Si iosbase.flags y ==ios_base::adjustfield aplazadosios_base::, la marca **–**work item.(El relleno se produce después de que el texto generado.)

  • si iosbase.flags y ios_base**:: ==** de adjustfield internoios_base::, marcador 0 work item.(Para un campo numérico de salida, el relleno aparece en el seguimiento de las funciones de impresión con 0.)

  • Si no, no se work item confirmación adicional.(El relleno se produce antes de la secuencia generada.)

finalmente:

  • Si iosbase.flags y los showposios_base::es distinto de cero, el marcador + se anteponen a la especificación de conversión.

  • si iosbase.flags y ios_base**:: el showbase**es distinto de cero, el marcador # se anteponen a la especificación de conversión.

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

  • fac.el agrupar determina cómo los dígitos se agrupan a la izquierda del separador decimal

  • fac.thousands_sep determina la secuencia que separa los grupos de dígitos a la izquierda del separador decimal

Si no se impone ninguna restricción de agrupación por fac.el agrupar (el primer elemento tiene el valor CHAR_MAX), entonces instancias de fac.thousands_sep se genera en el campo de salida.Si no, se insertan los separadores después de la conversión de impresión aparece.

La segunda función protegida miembro virtual:

virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
    CharType _Fill, unsigned long _Val) const;

se comporta igual que el primero, salvo que reemplaza una especificación de conversión de ld con lu.

La tercera función protegida miembro virtual:

virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
    CharType _Fill, double _Val) const;

se comporta igual que el primero, salvo que genera un campo flotante de salida del valor de val.fac.decimal_point determina la secuencia que separa los dígitos integrales de los dígitos de fracción.Se determina la especificación de conversión equivalente de impresión como sigue:

  • Si iosbase.flags y ==ios_base::floatfield corregidosios_base::, la especificación de conversión es LF.

  • si iosbase.flags y ios_base**:: ==** de floatfield científicoios_base::, la especificación de conversión es.leSi iosbase.flags y mayúsculasios_base::es distinto de cero, e se reemplaza con el E.

  • si no, la especificación de conversión es lg.si iosbase.flags y ios_base**:: mayúsculas es** distinto de cero, g se reemplaza con g.

si iosbase.flags y ios_base**:: fijo es** distinto de cero o si iosbase.precisiones mayor que cero, una precisión con el valor iosbase.precision se anteponen a la especificación de conversión.Cualquier relleno se comporta igual que en un campo entero de salida.el carácter de relleno es relleno.finalmente:

  • Si iosbase.flags y los showposios_base::es distinto de cero, el marcador + se anteponen a la especificación de conversión.

  • Si iosbase.flags y el showpointios_base::es distinto de cero, el marcador # se anteponen a la especificación de conversión.

La cuarta función protegida miembro virtual:

virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
    CharType _Fill, long double _Val) const;

se comportará el tercero, salvo que reemplazan el calificador l en la especificación de conversión con l.

La quinta función protegida miembro virtual:

virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
    CharType _Fill, const void *_Val) const;

se comportará el primero, salvo que la especificación de conversión es p**,** más cualquier calificador necesario para especificar el relleno.

La sexta función protegida miembro virtual:

virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
    CharType _Fill, bool _Val) const;

se comporta igual que el primero, salvo que genera un campo booleano de salida de _Val.

Un campo booleano de salida toma uno de dos formas.Si iosbase.flags y el boolalphaios_base::es false**,** la función miembro devuelve (_Nextdo_put*, _Iosbase, _Fill, (long*)),_Val que normalmente genera una secuencia generada de 0 (para false) o** 1 (true)**.**si no, la secuencia generada es cualquier fac.falsename) (para Falso), o fac.truename (para TRUE).

La séptima función protegida miembro virtual:

virtual iter_type do_put(iter_type next, ios_base& iosbase,
    Elem fill, long long val) const; 

se comporta igual que el primero, salvo que reemplaza una especificación de conversión de ld con lld.

La octava función protegida miembro virtual:

virtual iter_type do_put(iter_type next, ios_base& iosbase,
    Elem fill, unsigned long long val) const; 

se comporta igual que el primero, salvo que reemplaza una especificación de conversión de ld con llu.

Ejemplo

Vea el ejemplo para título, que llama a do_put.

Requisitos

encabezado: <configuración regional>

espacio de nombres: std

Vea también

Referencia

num_put Class