He leído en este foro las cosas que no se deben hacer al programar en C, una de ellas era utilizar funciones como scanf que no tienen limite de caracteres insertados, para ello el tutorial proponer fgets, otras de las cosas sobre las que habla el manual es sobre el uso de fflush(stdin) que aunque la gente lo use para una cosa no sirve para eso, ya que este limpia el buffer de salida y no el de entrada.
El caso es que al usar fgets no me deja introducir los datos, ya que salta directamente a la siguiente linea, al poner fflush(studin) se soluciona pero eso no me vale, yo quiero saber por que es esto y una forma segura de solucionarlo y no con fflush(studin) y sus comportamientos caóticos.
El fragmento de código es este:
En main defino estas dos variables:
Código
char tempnum; int dni = 0;
Código
case 'c': case 'C': search_listM(primero,dni); break;
Un saludo.