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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda simple, mi programa se salta una línea. C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda simple, mi programa se salta una línea. C++  (Leído 7,293 veces)
pablovg9

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Duda simple, mi programa se salta una línea. C++
« en: 20 Julio 2015, 20:30 pm »

Hola buenas!

Bueno estoy aprendiendo a programar así que tengo fallos básicos que no se solucionar.

En este caso por alguna razón que desconozco al insertar un valor se salta la siguiente línea.

Código:
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;

int main()
{
   double price;
   int units;
   char dis;
   string fname, nif, adds, pname;

   cout << "Product's price: " << endl;
   cin >> price;

   cout << "Units sold: " << endl;
   cin >> units;

   cout << "Discount (Y/N): " << endl;     //Sí aquí pongo cin.get(dis) se salta
   cin >> dis;                             //esta línea en vez de la de fullname

   cout << "Fullname: " << endl;           //Se salta directamente fullname
   getline(cin, fname);                    //no se por qué

   cout << "NIF: " << endl;
   getline(cin, nif);

   cout << "Address: " << endl;
   getline(cin, adds);

   cout << "Product's name: " << endl;
   getline(cin, pname);

return 0;
}


Seguro que es una tontería pero llevo una hora atascado con eso  :-[


« Última modificación: 20 Julio 2015, 20:41 pm por pablovg9 » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Soy un n00b
« Respuesta #1 en: 20 Julio 2015, 20:36 pm »

Hola!

modifica el titulo! el mismo debe ser descriptivo al problema expuesto


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Duda simple, mi programa se salta una línea. C++
« Respuesta #2 en: 20 Julio 2015, 21:35 pm »

El problema es que "cin >>" deja en el buffer de entrada el salto de linea, '\n'. Entonces, getline() al tratar de leer, lo encuentra, y termina ahí.

Lo que puedes hacer, es colocar "cin.ignore();" después del "cin >>", para ignorar el salto de linea que quedará ahí.

Otra forma, es usar getline siempre. Cuando tengas entradas más elaboradas, en un futuro, te recomiendo usar siempre getline(), y convertir en números con funciones como stoi(), stod(), etc, para convertir las strings en enteros, doubles, etc. Pero temporalmente, ignore() te ha de servir.
En línea

pablovg9

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Duda simple, mi programa se salta una línea. C++
« Respuesta #3 en: 21 Julio 2015, 01:40 am »

Muchas gracias, me funcionó  ;D

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre Programa en .vbs que modifica una línea de archivo
Programación Visual Basic
Kiosera 0 1,592 Último mensaje 27 Julio 2006, 18:13 pm
por Kiosera
KIS salta ante programa inofensivo en VB, ¿por qué? « 1 2 3 »
Programación Visual Basic
invisible_hack 25 7,913 Último mensaje 23 Diciembre 2008, 23:23 pm
por invisible_hack
Duda de programa en java :( condicional simple.
Java
rub'n 9 7,986 Último mensaje 1 Octubre 2010, 01:29 am
por 1mpuls0
Ayuda con Graphics simple linea
Java
PANCHIN123 1 2,828 Último mensaje 2 Mayo 2012, 08:03 am
por 1mpuls0
Concatenar con python salta a nueva linea
Python
ThanksVirus 8 6,657 Último mensaje 28 Febrero 2022, 20:27 pm
por .xAk.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines