C ++ ios_base fmtflags

Descripción

Este tipo es usado como su parámetro y / o valor de retorno por los indicadores de funciones miembro, setf y unsetf.

Declaración

A continuación se muestra la declaración de ios_base :: fmtflags.

std::ios_base::fmtflags ff;

Los valores pasados ​​y recuperados por estas funciones pueden ser cualquier combinación válida de las siguientes constantes miembro como se muestra a continuación:

campo constante miembro efecto cuando se establece
banderas independientes boolalpha leer / escribir elementos bool como cadenas alfabéticas ( truey false).
showbase escribir valores integrales precedidos por su correspondiente prefijo de base numérico.
showpoint escribir valores de coma flotante incluyendo siempre la coma decimal.
showpos escriba valores numéricos no negativos precedidos por un signo más (+).
skipws omita los espacios en blanco iniciales en determinadas operaciones de entrada.
unitbuf enjuague la salida después de cada operación de inserción.
mayúsculas escribir letras mayúsculas reemplazando letras minúsculas en determinadas operaciones de inserción.

base numérica

(campo base)

dic leer / escribir valores integrales usando formato de base decimal.
maleficio leer / escribir valores integrales usando formato base hexadecimal.
oct leer / escribir valores integrales usando formato base octal.

formato flotante

(Floatfield)

fijo escribir valores de coma flotante en notación de coma fija.
científico escribir valores de coma flotante en notación científica.

ajustamiento

(campo de ajuste)

interno la salida se rellena al ancho del campo insertando caracteres de relleno en un punto interno especificado.
izquierda la salida se rellena con el ancho del campo añadiendo caracteres de relleno al final.
derecho la salida se completa al ancho del campo insertando caracteres de relleno al principio.

También se pueden usar tres constantes de máscara de bits adicionales hechas de la combinación de los valores de cada uno de los tres grupos de banderas selectivas, como se muestra a continuación.

valor de la bandera equivalente a
campo de ajuste izquierda | derecha | interno
campo base dic | oct | maleficio
Floatfield científico | fijo

Los valores de estas constantes se pueden combinar en un solo valor de fmtflags usando el operador OR bit a bit (|).

Ejemplo

En el siguiente ejemplo se muestra para ios_base :: fmtflags.

#include <iostream>

int main () {

   std::cout.setf (std::ios_base::hex , std::ios_base::basefield);
   std::cout.setf (std::ios_base::showbase);
   std::cout << 100 << '\n';

   std::cout.setf (std::ios::hex , std::ios::basefield);
   std::cout.setf (std::ios::showbase);
   std::cout << 100 << '\n';

   std::cout.setf (std::cout.hex , std::cout.basefield);
   std::cout.setf (std::cout.showbase);
   std::cout << 100 << '\n';

   std::ios_base::fmtflags ff;
   ff = std::cout.flags();
   ff &= ~std::cout.basefield;   
   ff |= std::cout.hex;          
   ff |= std::cout.showbase;     
   std::cout.flags(ff);
   std::cout << 100 << '\n';

   std::cout << std::hex << std::showbase << 100 << '\n';

   return 0;
}

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

0x64
0x64
0x64
0x64
0x64