Apoyo básico / C++17

Entrada y salida

Llevar al apunte ↗

Descripción

cin lee los datos de la entrada estándar y cout escribe en la salida estándar. El enunciado define el orden y el tipo de cada dato. Los espacios y saltos de línea separan los datos que leés con >>.

Usá cin >> texto para una palabra y getline para una línea que puede tener espacios. Al pasar de una lectura con >> a una línea siguiente, hay que consumir el final de línea pendiente. Si la entrada termina al llegar al fin del archivo, la propia lectura puede controlar el ciclo.

La salida debe respetar el formato pedido, incluidos espacios, saltos de línea y mayúsculas. \n escribe un salto de línea. En la consola local puede ser necesario cerrar la entrada para indicar que llegó el fin del archivo.

Funciones y operaciones

Uso Parámetros Resultado o efecto
cin >> a >> b Variables donde guardar Lee los dos datos en ese orden
getline(cin, linea) Flujo y string de destino Lee hasta el salto de línea, lo consume y guarda el texto anterior
cin.ignore(numeric_limits<streamsize>::max(), '\n') Máximo a descartar y separador Descarta hasta el próximo salto de línea, incluido
cout << valor Dato a imprimir Escribe su representación
cout << '\n' Carácter de salto de línea Termina la línea actual
while (cin >> x) Lectura que controla el ciclo Repite mientras se puede leer otro valor

Ejemplos

Leer números y una palabra

int n;
long long costo;
string palabra;
cin >> n >> costo >> palabra;

Leer una línea después de un número

int n;
cin >> n;
cin.ignore(numeric_limits<streamsize>::max(), '\n');
string linea;
getline(cin, linea);

Este formato supone que la línea que buscás empieza después de la de n. Para leer una línea desde el inicio de la entrada, usá directamente getline(cin, linea).

Procesar una cantidad de casos

int casos;
cin >> casos;
for (int caso = 0; caso < casos; ++caso) {
    int a, b;
    cin >> a >> b;
    cout << a + b << '\n';
}

Leer hasta fin de archivo

long long x;
long long suma = 0;
while (cin >> x) {
    suma += x;
}
cout << suma << '\n';

Separar una secuencia con espacios

vector<int> respuesta = {2, 5, 7};
for (int i = 0; i < static_cast<int>(respuesta.size()); ++i) {
    if (i > 0) cout << ' ';
    cout << respuesta[i];
}
cout << '\n';
// Salida: 2 5 7