Autor
|
Tema: Duda simple, mi programa se salta una línea. C++ (Leído 7,218 veces)
|
pablovg9
Desconectado
Mensajes: 12
|
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. #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
|
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
Mensajes: 3.412
ASMático
|
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
Mensajes: 12
|
Muchas gracias, me funcionó
|
|
|
En línea
|
|
|
|
|
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,588
|
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,880
|
23 Diciembre 2008, 23:23 pm
por invisible_hack
|
|
|
Duda de programa en java :( condicional simple.
Java
|
rub'n
|
9
|
7,958
|
1 Octubre 2010, 01:29 am
por 1mpuls0
|
|
|
Ayuda con Graphics simple linea
Java
|
PANCHIN123
|
1
|
2,812
|
2 Mayo 2012, 08:03 am
por 1mpuls0
|
|
|
Concatenar con python salta a nueva linea
Scripting
|
ThanksVirus
|
8
|
6,534
|
28 Febrero 2022, 20:27 pm
por .xAk.
|
|