Código
if(flagValidacion)
Código:
fseek: Invalid argument
Hay que ver el source code de fseek y ver exactamente que parte es la que falla. Y ver si es que de alguna manera el sistema guarda esos bytes saltados, cosas que no creo. Pero hay que revisar.
La otra opcion es lo que comente de revisar el ultimo valor leido por fgets y determinar si queda algo en buffer de entrada. Ejemplo:
Código
#include <stdio.h> void myflush(const char *ptr,int size) { int i = 0; while(i < size && ptr[i++] != 0xA); if(i == size) } int main() { char temp[10]; int flagValidacion ; while(1) { myflush(temp,10); // Tiene que ser el ultimo arreglo leido y la ultima cantidad marcada con fgets } }
O bien realizarlo con una implementacion propia de fgets que le quite ese "pendiente" al programador. Incluso como un extra le borras al final ese "Enter" si es que existe.
Código
#include <stdio.h> void myfgets_stdin(char *ptr,int size) { int i = 0; while(i < size && ptr[i++] != 0xA); if(i == size) else ptr[i-1] = '\0'; } int main() { char temp[10]; int flagValidacion ; while(1) { myfgets_stdin(temp,10); } }
Saludos