fgets () wartet nicht auf Eingabe

Ich habe folgenden Code geschrieben:

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

Ich habe eine Eingabedatei, die die Anzahl der Zeilen hat, und dann die Anzahl der Zeilen gefolgt, die ich verarbeiten möchte. Also habe ich in der Zeilenanzahl nachgelesenN. Danach benutze ichfgets um die Leitung dazu zu bringen, sie verarbeiten zu können.

Jedoch,fgets scheint nicht das erste mal auf einen stdin zu warten. Ich bekomme immer eine Ausgabe von-und wartet dann auf die Eingabe. Das heißt, die erste Iteration der Schleife wartet nicht auf die Standardeingabe umfgets und druckt nur zwei leere Zeichen aus, die durch getrennt sind- als meineprintf tut.

Warum das? Wie bekomme ichfgets jedes Mal auf Eingaben warten? Ich denke, es ist ein Threading-Problem.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage