fgets () nie czeka na wejście

Napisałem następujący kod:

<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>

Mam plik wejściowy, który ma liczbę wierszy, a następnie liczba wierszy, którą chcę przetworzyć. Przeczytałem więc liczbę linii doN. Potem używamfgets aby linia była w stanie ją przetworzyć.

Jednak,fgets wydaje się, że za pierwszym razem nie czeka na stdin. Zawsze otrzymuję dane wyjściowe-, a następnie czeka na wejście. Oznacza to, że pierwsza iteracja pętli nie czeka na standardowe wejściefgets i po prostu wypisuje dwa puste znaki oddzielone znakiem- jako mójprintf robi.

Dlaczego? Jak mogę zdobyćfgets za każdym razem czekać na wejście? Mam wrażenie, że to kwestia wątku.

questionAnswers(3)

yourAnswerToTheQuestion