Programación General > C/C++
fallo intentando hacer scanf personalizado
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
[#] Página Siguiente
Ir a la versión completa