Está en la página 1de 12

Entrada y salida de datos en C++.

Uso de cin,
cout, scanf y printf
La entrada y salida de datos en C++ es simple (al
menos para los casos más comunes). Con esto
hago una comparación entre C++ y Java, pues
leer una entrada del usuario por teclado en C++
es bastante simple mientras que en Java implica
una serie de conceptos adicionales que la hacen
un tanto más complicada. Por suerte para
nosotros en esta sección veremos cómo leer por
teclado en C++, en otras palabras, asignar a una
variable el valor que el usuario escriba por el
teclado. Adicional a esto veremos también cómo
mostrar texto por pantalla en C++, es decir,
salida de datos.

Vamos a comenzar primero con aprender a


mostrar texto por pantalla en C++. Este orden se
debe a que cuando queremos pedirle algún dato
al usuario primero debemos hacerle saber lo que
queremos que ingrese y para hacérselo saber
debemos mostrarle un mensaje con las
indicaciones, por tal motivo es importante
primero saber mostrar texto en pantalla en C++ y
luego a leer texto por teclado en C++.

Salida de texto por pantalla en C++


Mostrar texto por pantalla en C++ es muy simple.
Para imprimir una salida de texto en C++ se hace
uso de la instrucción cout, junto con <<. Es
importante tener en cuenta que la instrucción
cout siempre va acompañada de << para
controlar el flujo de datos que sale. No te fijes
mucho en ellos, solo ten siempre presente que
cout viene acompañado de << para tener cout <<
como resultado.

Veamos algunos ejemplos para mostrar texto por


pantalla en C++:

Ejemplo 1 de impresión de texto por pantalla en


C++, usando cout

#include "iostream"

using namespace std;

int main()
{
//Se muestra un mensaje por pantalla.
cout << "Hola Mundo" << " Desde
ProgramarYa." << "\n";

return 0;
}

El ejemplo que acabas de ver es bastante


sencillo, excepto por un detalle. Si ejecutar este
código en tu pantalla aparecerá un mensaje
diciendo "Hola Mundo Desde ProgramarYa.". Tal
como habrás notado el operador "<<" se usa
para concatenar (unir) dos cadenas de texto por
eso el resultado es el obtenido. Luego se usa
"\n" lo cual crea un salto de línea. No es
obligatorio pero es recomendable.

Ejemplo 2 de impresión de texto por pantalla en


C++, usando cout

#include "iostream"
#include "string"

using namespace std;

int main()
{
//El valor de esta variable se mostrará en
pantalla
string salida1 = "Ejemplo de salida";
//Este valor también se mostrará en pantalla.
int numero = 2;

//Estos valores se concatenarán en una única


salida
string salida2 = "Desde ProgramarYa.";

//Se concatenan y muestran los valores por


pantalla con cout<<
cout << salida1 << " " << numero << ". " <<
salida2 << "\n";

return 0;
}

En este ejemplo de salida por pantalla hemos


visto que también es posible usar la instrucción
cout para mostrar en pantalla el valor de las
variables así sean numéricas o cadenas de texto.
También vimos que podemos concatenar los
valores de esas variables entre sí y también
concatenarlas con otros valores directamente
(espacios, puntos, símbolos, etc.).
Ahora, veamos los mismos ejemplos, pero
usando la función printf de C++, la cual también
es útil para imprimir valores por pantalla

Ejemplo 1 de impresión de texto por pantalla en


C++, usando printf

#include "iostream"

using namespace std;

int main()
{
//Se muestra un mensaje por pantalla.
printf("Hola Mundo");
printf(" Desde ProgramarYa.");
printf("\n");

//Alternativamente
printf("Hola Mundo Desde ProgramarYa.\n");

return 0;
}
Como puedes ver, al ejecutar el código, el
resultado sería el mismo del ejemplo de cout:
"Hola Mundo Desde ProgramarYa", con su
respectivo salto de línea al final. Sin embargo, el
código es bastante diferente, pues printf no nos
permite concatenar valores directamente en un
solo llamado, así que debemos hacer llamadas
sucesivas para imprimir cada parte del mensaje.
Por supuesto, podrías simplemente hacer un
solo llamado a printf con el mensaje completo y
sería mucho más sencillo.

Adicionalmente, los llamados a printf requieren


que los valores estén al interior de los paréntesis
(), pues printf es más una función que una
instrucción propia de C++.

Es cuestión de gustos, pero siempre me ha


parecido que cout simplifica bastante las cosas.
Veamos ahora el segundo ejemplo usando printf,
porque la cosa se complica:

Ejemplo 2 de impresión de texto por pantalla en


C++, usando printf

#include "iostream"
#include "string"
using namespace std;

int main()
{
string salida1 = "Ejemplo de salida"; //El valor
de esta variable se mostrará en pantalla
int numero = 2; //Este valor también se
mostrará en pantalla.
string salida2 = "Desde ProgramarYa."; //Estos
valores se concatenarán en una única salida

//Se concatenan y muestran los valores por


pantalla con parámetros de printf
printf("%s %d. %s \n", salida1.c_str(), numero,
salida2.c_str());

return 0;
}

En este ejemplo usando printf, puedes ver que


inicialmente todo es igual, pero al momento de
imprimir, todo cambia. Cuando nec esitas pasar
valores a printf, lo haces con un "%" seguido de
una letra. En el caso de un string se usa s (%s) y
en el caso de un número, se usa d (%d). Y luego,
se pasa como una serie de argumentos, cada
uno de los valores a usar en ese mismo orden.

Ahora bien, la cosa es aún más compleja en el


caso de string, porque printf no soporta el uso de
string, así que debemos pasar es un apuntador a
una seria de char. Por suerte, eso se consigue
llamando a la función "c_str()" propia de string.

Ya tenemos claro cómo mostrar texto por


pantalla en C++ ahora haremos uso de este
concepto y veremos cómo leer texto por teclado
en C++. Veamos:

Entrada o lectura de datos en C++


Tal como mencioné hace un momento, la lectura
de datos en C++ es bastante simple. Leer datos
por teclado en C++ se hace usando el comando
cin >> es importante notar el uso de los dos
signos >> que son usados para controlar el flujo
de datos. No te preocupes mucho por ellos, solo
ten en cuenta que cada vez que vaya a usar la
instrucción cin debes agregarle >> para quedar
con un cin>>. Una manera muy sencilla de
recordar esta instrucción es que in significa
entrar y como estamos programando en C++ le
añadimos la letra C al comienzo quedando así
cin>> (sin olvidar los >>).
Veamos unos ejemplos simples para leer datos
en C++. Recuerda como dije más arriba que lo
ideal para leer datos es indicarle al usuario qué
es lo que esperamos que ingrese por lo que en
estos ejemplos usaremos también lo recién
aprendido (mostrar texto por pantalla).

Ejemplo 1 de lectura de datos en C++, usando cin

#include "iostream"
#include "string"

using namespace std;

int main()
{
cout << "Hola! Este es un ejemplo en C++" <<
"\n" << "Por favor ingrese su nombre:" << "\n";
//La instrucción \n es un salto de línea
Mostrando los textos separados

string nombre;//En esta variable estará


almacenado el nombre ingresado.
cin >> nombre; //Se lee el nombre
cout << "Bienvenido al sistema " << nombre <<
". Gracias por usar nuestra aplicación" << "\n";

return 0;
}

En este ejemplo hemos hecho un pequeño


sistema de bienvenida personalizado para el
usuario leyendo el valor por teclado de su
nombre. En el comando cin>> se debe poner,
después de >>, el nombre de la variable en la
cual se almacenará el valor que el usuario
ingrese. Por tal motivo primero se declaró una
variable llamada nombre y luego se usó cin >>
nombre indicando que lo que el usuario ingrese
se almacenará en dicha variable.

Ejemplo 2 de lectura de datos en C++, usando cin

#include "iostream"
#include "string"

using namespace std;


int main()
{
//Mensaje de bienvenida
cout << "Hola! Aqui podras realizar sumas" <<
"\n";

//Se declaran los números que se sumarán


(pueden ser decimales)
float numero1, numero2;

//Se pide el primer numero


cout << "Por favor ingrese el primer valor: " <<
"\n";

//Se asigna el primer valor a numero1


cin >> numero1;

//Se pide el segundo numero


cout << "Por favor ingrese el segundo valor: "
<< "\n";

//Se asigna el segundo valor a numero2


cin >> numero2;
//Se muestra el resultado.
cout << numero1 << " + " << numero2 << " = "
<< numero1 + numero2;

return 0;
}

Acá tienes un caso similar al anterior, pero en


esta ocasión se están solicitando números y
luego realizando operaciones matemáticas con
ellos.

Vamos ahora a hablar un poco del uso de scanf


para leer valores y algunas dificultades que esto
presenta.

También podría gustarte