Salida Con Formato Cout en C
Salida Con Formato Cout en C
Manipuladores
Para dar formato a los datos que se muestran por pantalla, C++ asocia con el stream
de salida un conjunto de manipuladores que permiten modificar la forma en la que son
visualizados los resultados.
Un manipulador equivale a una llamada a una función.
Algunos de los manipuladores más comunes son los siguientes:
dec conversión a decimal
hex conversión a hexadecimal
oct conversión a octal
skipws extrae un espacio en blanco inicial
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 significativas, por defecto 6.
setfill(char ch) establece el carácter de relleno
left la salida se alinea a la izquierda
rigth la salida se alinea a la derecha
internal se alinea el signo y los caracteres indicativos de la base por la izquierda y las
cifras por la derecha
showbase se muestra la base de los valores numéricos
showpoint se muestra el punto decimal
uppercase los caracteres de formato aparecen en mayúsculas
showpos se muestra el signo (+) en los valores positivos
scientific notación científica para coma flotante
fixed notación normal de C++ para coma flotante
setiosflag(long i) establece una lista de flags de formato
resetriosflag(long i) suprime una lista de flags de formato
Los manipuladores pueden tener argumentos o no tenerlos. Los manipuladores sin
argumentos (endl, flush, etc.) están definidos en iostream. Los que tienen argumentos
están declarados en iomanip.
Un manipulador sólo afecta al stream (cin, cout, etc.) al que se aplica.
Un manipulador en C++ se utiliza de la forma:
cout << hex << 100;
cout << setw(10) << “Hola” << endl;
El efecto de los manipuladores permanece en el stream correspondiente hasta que se
cambian por otro manipulador, a excepción de setw(n) que hay que introducirlo en el
flujo antes de cada dato al que se le quiere aplicar ese ancho de campo.
Ejemplo:
//*********************************************************
// Ejemplo de uso de manipuladores setfill y setw
//*********************************************************
#include <iostream>
#include <iomanip> // define diferentes manipuladores
using namespace std;
int main(void)
{
cout << setfill('.'); // manipulador de relleno.
//el carácter de relleno será el punto
cout << "Listado de calificaciones\n" << endl;
cout << "Roberto Aniorte" << setw(20) << "8.5" << endl;
cout << "Andrea Gutierrez" << setw(19) << "6.9" << endl;
cout << "Isabel Sanchez" << setw(21) << "5.7" << endl;
cout << "Anastasio Castro" << setw(19) << "7.5" << endl;
cout << "Barbara Lopez" << setw(22) << "7.8" << endl;
cout << "Martin Garcia" << setw(22) << "9.1" << endl;
cout << setfill('\0'); // se restablece el carácter de relleno
cout << endl;
system("pause");
}