fgets () não está esperando por entrada

Eu escrevi o seguinte 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>

Eu tenho um arquivo de entrada que tem o número de linhas que ele tem e, em seguida, esse número de linhas seguidas que eu quero processar. Então eu li o número de linhas emN. Depois disso, eu usofgets para obter a linha para poder processá-lo.

Contudo,fgets não parece esperar por um stdin pela primeira vez. Eu sempre recebo saída de-e, em seguida, aguarda a entrada. Significado, a primeira iteração do loop, não está à espera de entrada padrão emfgets e apenas imprime dois caracteres vazios separados por- como meuprintf faz.

Por que é que? Como posso obterfgets esperar pela entrada toda vez? Eu sinto que é um problema de segmentação.

questionAnswers(3)

yourAnswerToTheQuestion