elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol 7D, Littlehorse)
| | |-+  [SOLUCIONADO] me salta el getline
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO] me salta el getline  (Leído 657 veces)
Don Olivera

Desconectado Desconectado

Mensajes: 128


Argentino.. hasta que consiga trabajo.


Ver Perfil
[SOLUCIONADO] me salta el getline
« en: 19 Febrero 2013, 22:53 »

Hola en este programa no deja escribir el nombre porque pasa directamente al otro codigo quisiera saber porque y cual seria la solucion

Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::cin;
  4. using std::endl;
  5.  
  6. #include <string>
  7. using std::getline;
  8. using std::string;
  9.  
  10. int main()
  11. {
  12. int numero1;
  13. int numero2;
  14. double numero3;
  15. string nombre;
  16.  
  17. cout << "Bienvenido, escriba 1 numero entero\n";
  18. cin >> numero1;
  19. cout << "Bien! ahora escriba un numero con decimales!\n";
  20. cin >> numero3;
  21. cout << "Escriba un numero entero\n";
  22. cin >> numero2;
  23. cout << "Escribe tu nombre y apellido!";
  24. getline(cin, nombre);
  25. cout << "\nBienvenido: " << nombre << endl;
  26. cout << "OK, ingreso los numeros: " <<numero1 << " " << numero3 << " " << numero2;
  27. cout << "hagamos unas cuentas...";
  28. cout << numero3 << "es igual a " << numero1 << " dividido " << numero2 << endl;
  29. numero3 = static_cast <double> (numero1) / numero2;
  30. cout << "tomando enteramente seria: " << numero1 / numero2;
  31. cout << "tomando con static es: " << numero3;
  32. cin.get();
  33. return 0;
  34. }
  35.  
  36.  


« Última modificación: 20 Febrero 2013, 00:01 por 1996marioful » En línea
Stakewinner00


Desconectado Desconectado

Mensajes: 804



Ver Perfil
Re: me salta el getline
« Respuesta #1 en: 19 Febrero 2013, 23:08 »

linia 24, por que el getline? si es un string puedes usar como los otros
cin >> nombre;


En línea




Don Olivera

Desconectado Desconectado

Mensajes: 128


Argentino.. hasta que consiga trabajo.


Ver Perfil
Re: me salta el getline
« Respuesta #2 en: 19 Febrero 2013, 23:18 »

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


Conectado Conectado

Mensajes: 601



Ver Perfil
Re: me salta el getline
« Respuesta #3 en: 19 Febrero 2013, 23:26 »

acaso cin no permite espacios?
En línea
Don Olivera

Desconectado Desconectado

Mensajes: 128


Argentino.. hasta que consiga trabajo.


Ver Perfil
Re: me salta el getline
« Respuesta #4 en: 19 Febrero 2013, 23:32 »

acaso cin no permite espacios?

creo que no, y si lso permite igual quiero saber porq salta el getline XD
En línea
engelx


Conectado Conectado

Mensajes: 601



Ver Perfil
Re: me salta el getline
« Respuesta #5 en: 19 Febrero 2013, 23:43 »

limpia el buffer... en c creo que con un getline vacio :P
En línea
Don Olivera

Desconectado Desconectado

Mensajes: 128


Argentino.. hasta que consiga trabajo.


Ver Perfil
Re: me salta el getline
« Respuesta #6 en: 19 Febrero 2013, 23:47 »

limpia el buffer... en c creo que con un getline vacio :P

como es eso? porque si pongo getline(); antes del otro get me da error :(
En línea
engelx


Conectado Conectado

Mensajes: 601



Ver Perfil
Re: me salta el getline
« Respuesta #7 en: 19 Febrero 2013, 23:52 »

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
Don Olivera

Desconectado Desconectado

Mensajes: 128


Argentino.. hasta que consiga trabajo.


Ver Perfil
Re: me salta el getline
« Respuesta #8 en: 20 Febrero 2013, 00:01 »

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 :D
En línea
amchacon


Conectado Conectado

Mensajes: 454



Ver Perfil
Re: me salta el getline
« Respuesta #9 en: 20 Febrero 2013, 01:27 »

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:

Código
  1. using namespace std;
En línea

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
engelx


Conectado Conectado

Mensajes: 601



Ver Perfil
Re: [SOLUCIONADO] me salta el getline
« Respuesta #10 en: 20 Febrero 2013, 03:30 »

Citar
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 :P 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:

Código
  1. using namespace std;
cierto! :P

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
Don Olivera

Desconectado Desconectado

Mensajes: 128


Argentino.. hasta que consiga trabajo.


Ver Perfil
Re: [SOLUCIONADO] me salta el getline
« Respuesta #11 en: 21 Febrero 2013, 19:58 »

ok :P sorry es que tengo tiempo sin ponerme con c
cierto! :P

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 Desconectado

Mensajes: 804



Ver Perfil
Re: [SOLUCIONADO] me salta el getline
« Respuesta #12 en: 21 Febrero 2013, 20:12 »

una pregunta, por que no cambias esto
Código:
using std::cout;
using std::cin;
using std::endl;

por esto
Código:
using namespace std;
En línea




Don Olivera

Desconectado Desconectado

Mensajes: 128


Argentino.. hasta que consiga trabajo.


Ver Perfil
Re: [SOLUCIONADO] me salta el getline
« Respuesta #13 en: 21 Febrero 2013, 20:17 »

una pregunta, por que no cambias esto
Código:
using std::cout;
using std::cin;
using std::endl;

por esto
Código:
using namespace std;

me gusta usarlo asi como esta en el programa, me evita olvidarme cosas jeje :D
En línea
Stakewinner00


Desconectado Desconectado

Mensajes: 804



Ver Perfil
Re: [SOLUCIONADO] me salta el getline
« Respuesta #14 en: 21 Febrero 2013, 20:21 »

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




Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.18 | SMF © 2006-2008, Simple Machines