Hola,
Cita:
Iniciado por Er_Nuke ... no me toma el primer ingreso de datos y se salta al segundo, ...
El archivo stdin es un buffer de caracteres, donde se almacena todo lo que se recibe por el teclado, pero las instrucciones deben leer de ese buffer consecutivamente, incluyendo el
retorno de carro (13) o
nueva línea (10).
Código:
scanf ("%d", &seleccion);
Al procesar la instrucción scanf solamente estas sacando de dicho buffer el número, pero el retorno de carro o la nueva línea todavía está en el buffer. Por lo tanto tienes que quitar ese retorno de carro antes que llegue al primer fgets, de otra forma este último recibe el retorno de carro (enter, intro) inmediatamente, como que lo hubieras presionado en el teclado.
Podrías eliminarlo leyendo desde el scanf
Código:
char c;
scanf ("%d%c", &seleccion, &c);
printf ("%d\n", c); // 13 en Win - 10 en Unix
O podrías eliminarlo después
Código:
scanf ("%d", &seleccion);
getchar();
Saludos,