3.- ENTRADAS Y SALIDAS BÁSICAS

 3.1 La biblioteca iostream

C++ proporciona una nueva biblioteca de funciones que realizan operaciones de E/S: la biblioteca iostream. Esta biblioteca es una implementación orientada a objetos y está basada, al igual que stdio, en el concepto de flujos. Cuando se introducen caracteres desde el teclado, puede pensarse en caracteres que fluyen desde el teclado a las estructuras de datos del programa. Cuando se escribe en un archivo, se piensa en un flujo de bytes que van del programa al disco.
Para acceder a la biblioteca iostream se debe incluir el archivo iostream.h. Este archivo contiene información de diferentes funciones de E/S. Define también los objetos cin y cout.

3.2 Manipuladores de salida

La biblioteca iostream define varios operadores particulares, llamados manipuladores, que le permiten controlar precisamente, el formato de los datos visualizados. Situando un manipulador en la cadena de operadores <<, se puede modificar el estado del flujo.
Una característica importante de un flujo que debe tratar con valores numéricos es la base de los números. Hay tres manipuladores (dec, hex y oct) para controlar la situación. La base por omisión es 10 y por tanto sólo será necesario indicar dec cuando se haya fijado la base a otro valor:

cout <<oct<<x<<endl;
cout <<dec<<x<<endl;

Los manipuladores que toman argumentos se declaran en iomanip.h, el resto en iostream.h.

Manipuladores

Aplicación

Descripción

dec

cout<<dec<<x;

Conversión a decimal

cin>>dec>>x;

hex

out<<hex<<x;

conversión a hexadecimal

cin>>hex>>x;

oct

cout<<oct<<x;

Conversión a octal

cin>>oct>>x;

ws

cin>>ws;

Salta espacios en la entrada

endl

cout<<endl;

Envía carácter fin de línea

flush

cout<<flush;

Limpia el buffer

setfill(int)

cout<<setfill('*';

Fija el carácter de rellenado

setprecision(int)

cout<<setprecision(6);

Fija la conversión en coma flotante al nº de dígitos especificado

setw(int)

cout<<setw(6)<<x;

Fija la anchura

cin>>setw(10)>>x;

 

Con setw() los valores numéricos se justifican a derechas y los datos carácter a izquierdas.

La información de la justificación de la salida se almacena en un modelo o patrón de bits de una clase llamada ios, que constituye la base de todas las clases de flujos. Puede establecer o reinicializar bits específicos utilizando los manipuladores setiosflags() y resetiosflags() respectivamente.

Para utilizar cualquiera de los indicadores de formato hay que insertar el manipulador setiosflags() con el nombre del indicador como argumento. Hay que utilizar resetiosflags() con el mismo argumento para invertir el estado del formato antes de utilizar el manipulador setiosflags().

Indicador

Significado del indicador activado

ios::left

Justifica la salida a la izquierda

ios::right

Justifica la salida a la derecha

ios::scientific

Utiliza notación científica para números de coma flotante

ios::fixed

Utiliza notación decimal para números de coma flotante

ios::dec

Utiliza notación decimal para enteros

ios::hex

Utiliza notación hexadecimal para enteros

ios::oct

Utiliza notación octal para enteros

ios::showpos

Muestra un signo positivo cuando se visualizan valores positivos

 

dAnterior

Indice C++

Siguiente a