BUSCAR
INDICE
INDICE DEL TEMA
OBJETIVOS
TEORIA
PALABRAS RESERVADAS
GLOSARIO
EJERCICIOS
RESUELTOS
AUTOEVALUACION
PROPUESTOS
ERRORES
ESTADISTICAS
INICIO
FAQS
LINKS
RECOMIENDANOS
QUIENES SOMOS
MAPA DEL WEB
COLABORAR
Tema 21 Entrada / Salida en C++
Teoría: Manipuladores de Entrada / Salida

Los manipuladores son constantes y/o métodos que constituyen una alternativa a los indicadores. Se pueden introducir en la propia sentencia de entrada o salida. Los manipuladores pueden tener argumentos o no tenerlos. Los manipuladores sin argumentos (endl, flush, etc.) están definidos en iostream.h. Los que tienen argumentos están declarados en iomanip.h. Un manipulador sólo afecta al flujo (cin, cout, etc.) al que se aplica.

El inconveniente de los manipuladores frente a los indicadores es que no permiten guardar la configuración anterior y por tanto volver a ella de una forma general y sencilla.

Los manipuladores de entrada/salida más utilizados se citan a continuación:

dec, hex y oct: establecen base para enteros ws: se saltan los blancos iniciales
endl: se imprime un ‘\n’ y se vacía el buffer de salida
flush: se vacía el buffer de salida
setw(int w): establece la anchura mínima de campo
setprecision(int p): establece el número de cifras
setfill(char ch): establece el carácter de relleno
setiosflag(long i) equivale al indicador setf()
unsetiosflag(long i) equivale a unsetf()

Un manipulador se utiliza de la forma:

cout << hex << 100;
cout << setw(10) << mat[i][j] << endl;

El efecto de los manipuladores permanece en el flujo correspondiente hasta que se cambian por otro manipulador, a excepción de setw() que hay que introducirlo en el flujo antes de cada dato al que se le quiera aplicar esa anchura de campo.