getline()

Iniciado por Geek7, 29 Julio 2010, 20:15 PM

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

Geek7

que esta mal en este codigo?

Código (cpp) [Seleccionar]


#include <iostream>
#include <stdlib.h>
#include <string>

using namespace std;

int main() {
    system("COLOR 3");

    string nombre, apellido, equipo;

    cout << "Cual es tu nombre y apellido? (2): \t" << endl;
    cin >> nombre >> apellido;
    cout << "Equipo favorito: \t" << endl;
    getline (cin,equipo);

    cout << "Bienvenido " << nombre << " " << apellido << endl;
    cout << "Aguante " << equipo << endl;

    system("PAUSE");
    return 0;
}


cuando escribo nombre y apellido se ejecuta solo el equipo y no me pregunta (y no muestra nada).

Horricreu

#1
:huh: ¿Quieres que te pregunte por el equipo :-\?

Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;

int main()
{
char equipo[50];

cout << "¿Cuál es tu equipo preferido?: ";

cin >> equipo;

cout << endl << "Aguante" << equipo << "." << endl;

cin.get();

return 0;
}


Otra cosa, en tu código limpia el buffer porque si no se tiene que pulsar enter dos veces.

Saludos :P

.:BlackCoder:.

Primero tas usando la libreria que no es, stdlib.h es de C en C++ es cstdlib...

Segundo debes ignorar e '\n' que queda en el buffer despues de entrar nombre y apellido... Ya que de la forma en que usas el getline() la entrada termina cuando consigue '\n' en el buffer, pero cuando ingresaste el nombre y el apellido dejaste uno Entonces se "salta" el getline...

averigua sobre la funcion miembro ignore()... Miembro de istream si no me equivoco  :xD

http://www.cplusplus.com/reference/iostream/istream/ignore/

Saludos...

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




Geek7

Gracias!

stdlib.h lo utilizaba para system().  :)