Programación General > C/C++

 fallo intentando hacer scanf personalizado

(1/2) > >>

krnl64:
Hola a todos.

Estoy intentando hacer un wrapper para scanf. Mi intencion es limpiar el buffer de consola antes y despues ejecutar la funcion scanf original.

El code es este:

--- Código: C ---  void myscanf(const char *format,...){     va_list args;        char c;                                      while((c = getchar()) != EOF);          va_start(args,format);        scanf(format,args);        va_end(args);}  

El caso es que a scanf no le llegan los argumentos .... y no se por qué.

Puede alguien decirme que he hecho mal ?

PD: tengo todos los includes.
Gracias

Eternal Idol:
Yo lo depure y jamas sale del while ...

krnl64:
Ahora arreglo eso.

Supon que limpia el buffer.

Eternal Idol:
Me parece que no podes pasar el va_list, tenes que usar va_arg ... igual ¿No es mucho mejor usar fgets y sscanf (en lugar de limpiar el buffer no ensuciarlo directamente)?

krnl64:
Claro, me gustaria no ensuciarlo. Pero entonces cómo hago que este trozo de codigo funcione ?


--- Código: C ---     printf("nintroduzca una cadena");    scanf("%49[a-z]",b);    printf("nintroduzca otra cadena: ");    scanf("%49[a-z]",c);  
Ese code solo te deja introducir una cadena. El 2º scanf se lo salta.

Cual es la solucion correcta ?

Gracias

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa