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

[0] Índice de Mensajes

Ir a la versión completa