Ayuda con varias palabras en un string

Iniciado por kur79, 10 Septiembre 2015, 22:16 PM

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

kur79

Pues eso, llevo ya varios años programando y no me ha pasado esto, pero estoy haciendo un proyecto y en un string solo me permite almacenar una palabra. Me explico, necesito que el usuario inserte 2 datos que son nombre y apellidos, pero cuando el cin>>nombre le paso 2 palabras como "Jose Luis" pero me almacena nombre=jose apellidos=luis y continua el programa.  :-[
Esto ocurre con todo lo que trato de hacer no solo en este programa, ¿alguna idea? Gracias

ivancea96

Código (cpp) [Seleccionar]
// Si usaste cin>>X antes, coloca esta linea:
cin.ignore();

string t;
getline(cin, t);

kur79


ivancea96

Es improbable que ocurra eso con getline. Coloca el código.

kur79

Creo que te referías así¿?

Código (cpp) [Seleccionar]
  string nombre,apellidos;
           cout<<"Intruduce el nombre: ";
           getline(cin, nombre);
           cin.ignore();
           cout<<"Intruduce los apellidos: ";
           getline(cin, nombre);
           cout<<nombre<<endl;
           cout<<apellidos<<endl;


esto obtengo de la consola

Intruduce el nombre: Jose Luis

Intruduce los apellidos: Romer Rincon
Romer Rincon

read from master failed
                      : Input/output error

RUN FAILED (exit value 1, total time: 17s)



someRandomCode

Directamente std::cin >> nombre; en vez de usar getline asi

ivancea96

no pongas el cin.ignore salvo que uses "cin>>" antes. Así que en ese código, no lo uses.