# Entrada y salida de datos STDIN SDTOUT

Cuando se crea un programa, muchas veces es necesario solicitar al usuario que introduzca datos de entrada, y posteriormente presentarle los resultados en pantalla.

Al proceso de leer desde el teclado y escribir datos a la pantalla, se le conoce como operaciones de entrada y salida.

El flujo de datos estandar de entrada se conoce como STDIN (Standard Input) y está conectado al teclado, es decir al utilizar métodos STDIN se leen datos directamente del teclado.

El flujo de datos estandar de salida se conoce como STDOUT (Standard Output) y está conectado a la pantalla, es decir al utilizar métodos STDOUT se escriben datos en la pantalla para que el usuario los vea.

En C++ la entrada y salida de datos se realiza de forma muy simple al utilizar la libreria `iostream`.

## Uso de `cin`

El método `cin` se encarga de leer valores desde el teclado y almacenarlos en una o más variables.

Ejemplo:

```cpp
// Leer un valor y almacenarlo en la variable1
cin >> variable1;
// Leer dos valores y almacenarlos en las variables 1 y 2
cin >> variable1 >> variable2;
```

Se utilizan los símbolos `>>` para indicar que se están leyendo datos. Se conoce como flujo de inserción, y determina en que sentido van los datos. En este caso van de izquierda a derecha, lo que significa que se están leyendo valores.

El método `cin` determina como leer los datos con base en el tipo de dato de la variable en la que se guardarán. Por ejemplo, si la `variable1` fuera de tipo `int`, el método leería los datos como enteros.

## Uso de cout

El método `cout`se encarga de escribir valores a la pantalla, de esta forma el usuario puede ver los resultados de la ejecución del programa.

Ejemplo:

```cpp
// Escribir el valor de la variable1 a la pantalla
cout << variable1;
// Escribir una cadena de texto a la pantalla
cout << "Hola mundo";
cout << "La variable1 vale: " << variable1;
```

Se utilizan los símbolos `<<` para indicar que se están escribiendo datos. En este caso van de derecha a izquierda, lo que significa que se están escribiendo valores.

Cuando se quieren escribir cadenas de texto, estas se deben introducir entre comillas dobles `" "`. Si se quiere introducir más de una cadena de texto, o varias variables, se deben utilizar separandose por el flujo de inserción `<<`
