Hallo Robert,
Was heißt das genau? Liest du bei mehrfachen fgets-Aufrufen die gleichen Zeichen? Ich habe folgendes kleine Testprogramm geschrieben, welches exakt die Eingabe in 9-Byte-Blöcken ausgibt:
das wird Markus nicht weiterhelfen, denke ich.
Wenn ich ihn richtig verstanden habe, will er aus einer Eingabezeile immer nur die ersten n Zeichen verarbeiten, egal wie lang die Zeile tatsächlich ist. Dass er dazu trotzdem die gesamte Zeile lesen muss, ist klar. Dass er sich dabei Gedanken um Buffer Overflow und ähnliche Probleme macht, ist IMHO auch einleuchtend.
Wie gesagt, für dieses Verhalten gäbe es sonst nur die Erklärung, dass der Eingabepuffer zu klein ist oder das Newline nicht mitgeliefert wird, was allerdings sein sollte.
Das Problem ist wirklich nur, wenn ich es richtig sehe, dass man die Länge der Eingabezeile nicht vorhersehen kann. Die kann beliebig lang sein, man muss also eine unbestimmte Anzahl von Zeichen zwar aus dem Eingabepuffer (nicht Tastaturpuffer, Markus!!) abholen, aber ignorieren.
Schönen Abend noch,
Martin
Irgendwann in grauer Vorzeit benutzte einer unserer prähistorischen Vorfahren ein Schimpfwort anstelle der Keule.
Die Zivilisation hatte begonnen.