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.