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
// Si usaste cin>>X antes, coloca esta linea:
cin.ignore();
string t;
getline(cin, t);
Nop, aún me ocurre :huh:
Es improbable que ocurra eso con getline. Coloca el código.
Creo que te referías así¿?
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)
Directamente std::cin >> nombre; en vez de usar getline asi
no pongas el cin.ignore salvo que uses "cin>>" antes. Así que en ese código, no lo uses.