Flujo de entrada y salida

En C, para mostrar información por pantalla hacíamos uso de funciones como puts(), putchar() o printf() si queríamos mostrar información con formato. Y para la entrada de datos, usamos, mayormente scanf().

En C++ disponemos de los flujos de entrada/salida estándar 
  • cout y el operador <<
  • cin   y el operador >>
Para poder utilizar los flujos de datos estándar, hay que incluir la biblioteca iostream.h.


Ejemplo 1.-

//Muestra por pantalla un mensaje de bienvenida al usuario.

#include <iostream>
using namespace std;

int main(void)
{
     cout << "Bienvenido a la programación en C++"<<endl;
     return 0;
}

Ejemplo 2.-

//Pide al usuario su nombre y lo muestra por pantalla junto al mensaje de bienvenida

#include <iostream>
using namespace std;

int main(void)
{
     string nombre;
     cout<<"Escriba su nombre"<<endl;
     cin >> nombre;
     cout <<"Bienvenido al lenguaje C++ "<<nombre<<endl;

     return 0;
}

cout y cin facilitan la entrada y salida de datos con formato. Mientras que en C hay que estar pendiente al tipo de dato que se quiere imprimir y utilizar cadenas de formato adecuadas, C++ no.

Si no se incluye using namespace std, a cout, cin y endl hay que precederlos con std::

Ejemplo 3.-

//Pide al usuario su edad y nombre y lo muestra por pantalla junto al mensaje de bienvenida

#include <iostream>

int main(void)
{
     string nombre;
     int edad;
     std::cout<<"Escriba su nombre"<<std::endl;
     std::cin >> nombre;
     std::cout <<"Escriba su edad"<<std::endl:
     std::cin >> edad;
     std::cout <<"Bienvenido "<<nombre<<" tienes "<<edad<<" años"<<std::endl;
  
     return 0;
}

>> elimina los espacios en blanco al principio de la entrada de datos, y lee datos hasta que encuentre algún carácter de espacio en blanco. Se consideran espacios en blanco  a: 
  • '  '                 espacio en blanco
  • '\t', '\v', '\f'    tabuladores
  • '\r'                retorno de carro
  • '\n'               nueva línea.

Para eliminar los carácteres que pudiera contener el buffer, después de una operación de lectura de datos, usaremos la función ignore.

Ej.-

     cin >> nombre;
     cout<<"Hola << nombre << endl;
     .
     .
     .
     cin.ignore(1000,'\n');
     .
     .

ignore elimina del buffer de entrada el número de caracteres especificado en el primer parámetro o hasta el carácter especificado en el segundo parámetro.