Programación General > C/C++
[Solucionado]Problemas con el buffer de entrada
(1/1)
lambda:
Hola que tal a todos mi problema es el siguiente: No puedo limpiar el buffer de entrada y debido a esto mi programa se salta una instrucción en la función "pedidos" .
--- Código: C --- #include <stdio.h>#include <ncurses.h>typedef struct vx {char calle[30];char tipo_cantidad[15];int cantidad;}vx; void importe_venta (void);void pedidos (void);int main(void){ printf("Elija una opcion : "); printf("a) Venta t"); printf("b) Pedido t"); char opc; scanf("%c",&opc); //while(getchar()!='n'); switch (opc) { case 'a': importe_venta(); break; case 'b': pedidos(); break; } return 0;}void importe_venta(void){ int cantidad=0; int precio=0; printf("Cantidad >>> "); scanf("%d",&cantidad); printf("Precio >>> "); scanf("%d",&precio); int l=cantidad*precio; printf("Importe >>> %d ",l); }void pedidos(void){ vx pedido; //while(getchar()!='n'); printf("Domicilio >>> "); scanf("%30[^n],pedido.calle); printf("%sn",pedido.calle); printf("Cantidad total >>> "); scanf("%d",&pedido.cantidad); //print("%dn",pedido.cantidad); printf("Cantidad de cada tipo >>> "); scanf("%30[^n]",pedido.tipo_cantidad); printf("%sn",pedido.tipo_cantidad); }
Sucede que cuando elijo la opción "b" que es para acceder a la función "pedidos" se salta el scanf que pide el domicilio,ya he probado con fflush y no me ha funcionado.
Espero que me puedan ayudar, gracias.
LapizTolita:
foros.solocodigo.com/viewtopic.php?f=18&t=43072
Ahí explica porque no usar fflush con stdin.
El único error que vi es este :
47 scanf("%30[^n],pedido.calle);
Navegación
Ir a la versión completa