Original article: Getline in C++ – cin getline() Function Example

En este artículo, hablaremos sobre la función getline() en C++. Esta es una función incorporada que acepta entradas de un solo carácter o múltiples caracteres.

Cuando trabajamos con la entrada del usuario en C++, el objeto cin nos permite obtener información de entrada del usuario. Pero cuando intentamos registrar la entrada del usuario que tiene múltiples valores, solo devuelve el primer carácter.

Esto sucede porque el compilador de C++ asume que cualquier espacio en blanco termina el programa al obtener la entrada. Es decir, "Mi nombre es Ihechikara" solo devolvería "Mi" al registrarse.

Aquí tienes un mejor ejemplo:

#include <iostream>
using namespace std;

int main() {

    string bio;
    
    // Mensaje impreso en la consola
    cout << "Contanos sobre vos: ";
    
    /* Esto le pide al usuario que escriba un mensaje y yo escribí esto: 				"JavaScript es mi lenguaje preferido"
    */
    cin >> bio;
    
    /* Cuando quiero imprimir la bio de arriba, sólo se imprime "Javascript"
    */
    cout << "Tu bio dice: " << bio;
    // Tu bio dice: Javascript

    
}

En el código anterior, se le pide al usuario que ingrese su bio. Luego ingresaron "JavaScript es mi lenguaje preferido". Pero cuando la bio se mostró en la consola, solo se registró "JavaScript".

A continuación, veremos cómo usar la función getline() para obtener el resto de los caracteres en la cadena.

Ejemplo con getline() en C++

En esta sección, veremos un ejemplo práctico de cómo usar la función getline().

#include <iostream>
using namespace std;

int main() {

    string bio;
    
    cout << "Contanos sobre vos: ";
    
    getline(cin, bio);
    
    cout << "Tu bio dice: " << bio;
}

En el ejemplo anterior, pasamos dos parámetros a la función getline(): getline(cin, bio);. El primer parámetro es el objeto cin y el segundo es la variable de cadena bio.

Cuando ejecutas el código, se te pedirá que ingreses algún texto. Después de hacerlo, presiona "Enter" y verás la salida que contiene todo el texto de tu entrada en lugar de solo el primer carácter.

En mi caso, ingresé una cadena con múltiples caracteres y la obtuve registrada en la consola. Inténtalo para ver cómo funciona.

Con esto, puedes trabajar de manera efectiva con las entradas de usuario en tus programas.

Conclusión

En este artículo, hablamos sobre la función getline(), que nos permite obtener múltiples caracteres de la entrada del usuario.

Primero vimos lo que sucede cuando obtenemos una cadena con múltiples caracteres de un usuario: solo se devuelve el primer carácter.

Luego vimos cómo obtener todos los caracteres de la cadena utilizando la función getline(), que toma dos parámetros: el objeto cin y la variable de cadena.

¡Feliz codificación!