Autor
|
Tema: [SOLUCIONADO] me salta el getline (Leído 520 veces)
|
1996marioful
Desconectado
Mensajes: 119
|
Hola en este programa no deja escribir el nombre porque pasa directamente al otro codigo quisiera saber porque y cual seria la solucion #include <iostream> using std::cout; using std::cin; using std::endl; #include <string> using std::getline; using std::string; int main() { int numero1; int numero2; double numero3; string nombre; cout << "Bienvenido, escriba 1 numero entero\n"; cin >> numero1; cout << "Bien! ahora escriba un numero con decimales!\n"; cin >> numero3; cout << "Escriba un numero entero\n"; cin >> numero2; cout << "Escribe tu nombre y apellido!"; getline(cin, nombre); cout << "\nBienvenido: " << nombre << endl; cout << "OK, ingreso los numeros: " <<numero1 << " " << numero3 << " " << numero2; cout << "hagamos unas cuentas..."; cout << numero3 << "es igual a " << numero1 << " dividido " << numero2 << endl; numero3 = static_cast <double> (numero1) / numero2; cout << "tomando enteramente seria: " << numero1 / numero2; cout << "tomando con static es: " << numero3; cin.get(); return 0; }
|
|
|
|
« Última modificación: 20 Febrero 2013, 00:01 por 1996marioful »
|
En línea
|
|
|
|
Stakewinner00
Desconectado
Mensajes: 795
|
linia 24, por que el getline? si es un string puedes usar como los otros cin >> nombre;
|
|
|
|
|
En línea
|
|
|
|
1996marioful
Desconectado
Mensajes: 119
|
linia 24, por que el getline? si es un string puedes usar como los otros cin >> nombre;
Hola mas que nada es porque es un nombre, getline te permite que el usuario ingrese caracteres con espacios
|
|
|
|
|
En línea
|
|
|
|
engelx
Desconectado
Mensajes: 463
|
acaso cin no permite espacios?
|
|
|
|
|
En línea
|
|
|
|
1996marioful
Desconectado
Mensajes: 119
|
acaso cin no permite espacios?
creo que no, y si lso permite igual quiero saber porq salta el getline XD
|
|
|
|
|
En línea
|
|
|
|
|
|
|
|
engelx
Desconectado
Mensajes: 463
|
bueno coloca 2 veces el mismo getline, el primero agarra lo que está en el buffer el segundo los datos que quieres... (sorry tengo tiempo sin usar c, pero eso es algo común en c, j y algunos otros lenguajes)
|
|
|
|
|
En línea
|
|
|
|
1996marioful
Desconectado
Mensajes: 119
|
bueno coloca 2 veces el mismo getline, el primero agarra lo que está en el buffer el segundo los datos que quieres... (sorry tengo tiempo sin usar c, pero eso es algo común en c, j y algunos otros lenguajes)
Gracias hay andubo 
|
|
|
|
|
En línea
|
|
|
|
amchacon
Conectado
Mensajes: 284
|
acaso cin no permite espacios?
No, cada vez que pulsas la tecla "espacio" se da la lectura por terminada (como si pulsaras enter). Por eso hay que usar getline PD: Repito, no tienes que usar todos esos "using std::". Basta con que pongas uno genérico: using namespace std;
|
|
|
|
|
En línea
|
|
|
|
engelx
Desconectado
Mensajes: 463
|
No, cada vez que pulsas la tecla "espacio" se da la lectura por terminada (como si pulsaras enter).
Por eso hay que usar getline
ok  sorry es que tengo tiempo sin ponerme con c PD: Repito, no tienes que usar todos esos "using std::". Basta con que pongas uno genérico: using namespace std;
cierto!  por cierto... no recuerdo si en c... pero si revisas el contenido del primer getline posiblemente verás que contiene el enter que pulsaste anteriormente... recuerdo que me explicaron eso, pero no recuerdo por que...
|
|
|
|
|
En línea
|
|
|
|
1996marioful
Desconectado
Mensajes: 119
|
ok  sorry es que tengo tiempo sin ponerme con c cierto!  por cierto... no recuerdo si en c... pero si revisas el contenido del primer getline posiblemente verás que contiene el enter que pulsaste anteriormente... recuerdo que me explicaron eso, pero no recuerdo por que... si lo se pero me gusta usarlo así porque evito olvidarme cosas XD
|
|
|
|
|
En línea
|
|
|
|
Stakewinner00
Desconectado
Mensajes: 795
|
una pregunta, por que no cambias esto using std::cout; using std::cin; using std::endl; por esto using namespace std;
|
|
|
|
|
En línea
|
|
|
|
1996marioful
Desconectado
Mensajes: 119
|
una pregunta, por que no cambias esto using std::cout; using std::cin; using std::endl; por esto using namespace std; me gusta usarlo asi como esta en el programa, me evita olvidarme cosas jeje
|
|
|
|
|
En línea
|
|
|
|
Stakewinner00
Desconectado
Mensajes: 795
|
a si, ya lo dijiste me despiste.
Bueno, personalmente te recomiendo que uses el más corto y cómodo, y yo tampoco usaría un return 0 al final ya que igualmente sale pero bueno, eso es más comprensible.
Los codigos deben ser lo más corto y simples, sino la gente no los entiende.
|
|
|
|
|
En línea
|
|
|
|
|
|