El significado específico del manipulador de flujo parametrizado iomanip
//file setfill.cc #includelt; iostream.hgt; #includelt; //el manipulador privado iosamp; iosamp; i, int f) { i.fill(f); return i }//el aplicador público smanip_int setfill(int f) { return smanip_int(sfill, f } La implementación del manipulador parametrizado se divide en dos); Piezas: manipulador. Utiliza un parámetro adicional. En el ejemplo de código anterior, se utiliza un parámetro int adicional. Debido a que no hay ningún operador de desplazamiento definido para esta función de manipulador, no se puede colocar en una secuencia de operaciones de entrada o salida. Por lo tanto, se debe llamar al manipulador utilizando el aplicador de funciones auxiliares. Normalmente, el manipulador es una función estática en el archivo que contiene el código fuente del aplicador. Solo el aplicador puede llamar al manipulador y, si configura el manipulador como una función estática, siempre debe mantener el nombre del manipulador fuera del espacio de direcciones global. El archivo de encabezado iomanip.h define varias clases. Cada clase contiene la dirección de una función manipuladora y el valor de un parámetro. iomanip se describe en la página del manual manip(3CC4). El ejemplo anterior utiliza la clase smanip_int utilizada con ios. Dado que esta clase se usa con ios, también se puede usar con istream y ostream. El ejemplo anterior también utiliza otro parámetro de tipo int. En el ejemplo de código anterior, el objeto de clase es smanip_int, que contiene el operador y los parámetros int del aplicador. El archivo de encabezado iomanip.h define los operadores de turno utilizados por esta clase. Si está dentro de una secuencia de operaciones de entrada o salida, se llama a la función de aplicación setfill y devuelve una clase. El operador de desplazamiento actúa sobre una clase, llamando a la función manipuladora con su valor de argumento (almacenado en la clase). En el siguiente ejemplo, el manipulador print_hex: establece el flujo de salida en modo hexadecimal. Inserte un valor largo en el flujo de datos. Restaure el modo de conversión del flujo de datos. hgt; static ostreamamp; xfield(ostreamamp; os, long v) { long save = os.setf(ios::hex, ios::basefield); return os; { return omanip_long(xfield, v);
#include lt;iostream.hgt; #include lt;iomanip.