Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: r4gnath0r en Noviembre 22, 2016, 06:04:30 PM

Título: DUDA C++ Cin / cin.get() / cin.getline()
Publicado por: r4gnath0r en Noviembre 22, 2016, 06:04:30 PM
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!
Título: Re:DUDA C++ Cin / cin.get() / cin.getline()
Publicado por: sadfud en Noviembre 22, 2016, 07:40:38 PM
con cin te coge hasta el primer espacio, con cin.getline ignora los espacios y coge todo lo que introduzcas hasta que pulses enter
Título: Re:DUDA C++ Cin / cin.get() / cin.getline()
Publicado por: r4gnath0r en Noviembre 22, 2016, 07:48:18 PM
Gracias por la respuesta! He probado y concin si que me coge todo lo introducido por el usuario. Por ejemplo:

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

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



Título: Re:DUDA C++ Cin / cin.get() / cin.getline()
Publicado por: r4gnath0r en Noviembre 23, 2016, 01:53:11 PM
Ahora le sumo un problema con los condicionales, con el siguiente codigo:

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.
Título: Re:DUDA C++ Cin / cin.get() / cin.getline()
Publicado por: sadfud en Noviembre 23, 2016, 03:05:34 PM
Código (cpp) [Seleccionar]
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