DUDA C++ Cin / cin.get() / cin.getline()

Iniciado por r4gnath0r, Noviembre 22, 2016, 06:04:30 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Noviembre 22, 2016, 06:04:30 PM Ultima modificación: Noviembre 22, 2016, 07:09:28 PM por Gabriela
Buenas a todos.
Vuelvo a presentarme con una duda nueva del lenguaje C++. Esta vez con la introducción de datos por parte del usuario.

En algunos lugares leo que para introducir datos por parte del usuario en un char utiliza directamente cin, en otro usa cin.getline y no encuentro la diferencia.

¿Alguien podría explicarmelo?

Gracias!

con cin te coge hasta el primer espacio, con cin.getline ignora los espacios y coge todo lo que introduzcas hasta que pulses enter
Mi blog: No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Si necesitas ayuda, no dudes en mandar MP

Gracias por la respuesta! He probado y concin si que me coge todo lo introducido por el usuario. Por ejemplo:

Código: text
int main(){
char nombre[50];
cout << "Escribe tu nombre: ";
cin >> nombre;

cout << nombre <<endl;
system("pause");
return 0;
}




Ahora le sumo un problema con los condicionales, con el siguiente codigo:

Código: text
string deporte;
cout << "Indica tu deporte favorito: ";
cin.get();
getline(cin, deporte);

if (deporte == "futbol" || deporte = "baloncesto")
    cout << "Te gustan los deportes de equipo" << endl;
else
    cout << "Lo tuyo son los deportes individuales" << endl;


El caso es que así sí que se me ejecuta correctamente, pero si por el contrario elimino cin.get(), el programa pasa directamente al else sin dar opcion a que el usuario introduzca los datos.

¿Qué hago mal?

Gracias.

Código: cpp
string deporte;
cout << "Indica tu deporte favorito: ";
cin >> deporte;

if (deporte == "futbol" || deporte = "baloncesto")
    cout << "Te gustan los deportes de equipo" << endl;
else
    cout << "Lo tuyo son los deportes individuales" << endl;

Asi deberia funcionarte
Mi blog: No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Si necesitas ayuda, no dudes en mandar MP