Biblioteca C ++ IOS - Setf

Descripción

Se utiliza para establecer indicadores de formato específicos. Los indicadores de formato de una secuencia afectan la forma en que se interpretan los datos en determinadas funciones de entrada y cómo se escriben mediante determinadas funciones de salida. Consulte ios_base :: fmtflags para conocer los posibles valores de los argumentos de esta función.

Declaración

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

set (1)	fmtflags setf (fmtflags fmtfl);
mask (2) fmtflags setf (fmtflags fmtfl, fmtflags mask);

La primera forma (1) establece las banderas de formato de la secuencia cuyos bits se establecen en fmtfl, dejando sin cambios el resto, como si fuera una llamada a banderas (fmtfl | flags ()).

La segunda forma (2) establece los indicadores de formato de la secuencia cuyos bits se establecen tanto en fmtfl como en la máscara, y borra los indicadores de formato cuyos bits se establecen en máscara pero no en fmtfl, como si fuera una llamada a indicadores ((fmtfl & mask) | (indicadores () y ~ máscara)).

Parámetros

fmtfl- Formato de banderas a configurar. Si se usa la segunda sintaxis, solo los bits establecidos en fmtfl y mask se establecen en los indicadores de formato de la secuencia; se borran los indicadores establecidos en la máscara pero no en fmtfl.

mask - Máscara que contiene las banderas a modificar.

Valor devuelto

Las banderas de formato seleccionadas en la secuencia antes de la llamada.

Excepciones

Basic guarantee - si se lanza una excepción, el flujo está en un estado válido.

Carreras de datos

Modifica el objeto de flujo. El acceso simultáneo al mismo objeto de flujo puede provocar carreras de datos.

Ejemplo

En el siguiente ejemplo se explica la función ios_base :: setf.

#include <iostream>     

int main () {
   std::cout.setf ( std::ios::hex, std::ios::basefield );  
   std::cout.setf ( std::ios::showbase );                  
   std::cout << 100 << '\n';
   std::cout.unsetf ( std::ios::showbase );                
   std::cout << 100 << '\n';
   return 0;
}

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

0x64
64