La variables internas que controlan la anchura del campo de salida, el carácter usado para rellenar el campo de salida, y la precisión para escribir números de coma flotante son escritos y leídos por funciones miembro del mismo nombre.
Función
Efecto
int ios::width( )
Retorna la anchura actual. Por defecto es 0. Se usa para la inserción y la extracción.
int ios::width(int n)
Pone la anchura, retorna la anchura previa.
int ios::fill( )
Retorna el carácter de relleno actual. Por defecto es el espacio.
int ios::fill(int n)
Poner el carácter de relleno, retorna el carácter de relleno anterior.
int ios::precision( )
Retorna la precisión actual de la coma flotante. Por defecto es 6.
int ios::precision(int n)
Pone la precisión de la coma flotante, retorna la precisión anteriot. Vea la tabla ios::floatfield
para el significado de 'precisión'.
El relleno y la precisión son bastante claras, pero la anchura requiera alguna explicación. Cuando la anchura es 0, insertar un valor produce el mínimo número de carácteres necesario para representar este valor. Una anchura positiva significa que insertar un valor producirá al menos tantos carácteres como la anchura; si el valor tiene menos carácteres que la anchura, el carácter de relleno llena el campo. No obstante, el valor nunca será truncado, con lo que si usted intenta escribir 123 con una anchura de dos, seguirá obteniendo 123. El campo anchura especifica un minimo número de carácteres; no hay forma de especificar un número mínimo.
La anchura también es diferente por que vuelve a ser cero por cada insertador o extractor que puede ser influenciado por
este valor. Realmente no es una variable de estado, sino más bien un argumento implícito para los extractores y insertadores.
Si quiere una anchura constante, llame a width()
despues de cada inserción o extracción.