fgets () no espera entrada

Escribí el siguiente código:

<code>int N;
scanf("%d", &N);
int i;
for (i = 0; i < N; i++) {
  char line[LINE_MAX];
  if (fgets(line, LINE_MAX, stdin) != NULL) {
    // do stuff with line here
    printf("%c - %c\n", line[0], line[1]);
  }
}
</code>

Tengo un archivo de entrada que tiene el número de líneas que tiene, y luego ese número de líneas seguidas que quiero procesar. Así que leí en el número de líneas enN. Después de eso, usofgets Para obtener la línea para poder procesarla.

Sin embargo,fgets No parece esperar una entrada estándar la primera vez. Siempre me sale de-, y luego espera la entrada. Es decir, la primera iteración del bucle, no está esperando la entrada estándar enfgets y solo imprime dos caracteres vacíos separados por- como miprintf hace.

¿Porqué es eso? Como puedo conseguirfgets ¿Esperar entrada cada vez? Siento que es un tema de hilos.

Respuestas a la pregunta(3)

Su respuesta a la pregunta