Beliebig lange Zeichenkette von Konsole holen (C)

Hallo,

wie ist es in C möglich eine beliebig lange Zeichenkette von der Konsole zu holen, die nur durch ein ‚\n‘ terminiert wird.

Also es soll alles gelesen werden bis Enter gedrückt wird und dann in ein char array geschrieben werden. Doch um das char Array zu dimensionieren brauche ich ja erstmal die Zahl der eingegebenen Zeichen.

Früher hab ich mal gewusst wie es gegangen ist und zwar in etwa so:

while (… != ‚\n‘)
length++;

str = malloc(…);

scanf("%s", str);

Aber mir fällt jetzt einfach nicht mehr ein mit welcher Funktion man in while einzelne eingegebene Zeichen von der Tastatur lesen konnte ohne den Puffer gleichzeitig zu leeren.

Ciao

Hallo,

wie ist es in C möglich eine beliebig lange Zeichenkette von
der Konsole zu holen, die nur durch ein ‚\n‘ terminiert wird.

Ich vermute ja fasst, dass es eine einfachere Lösung gibt, aber ich würde eine Funktion schreiben, die folgendes macht:

  1. Einen Buffer mit malloc() allokieren (z.B. 1k)
  2. mit fgets lesen.
  3. Überprüfen, ob der Puffer vollgeschrieben wurden
  4. Wenn ja, mit realloc() den Puffer vergrößern und bei 2) weitermachen.

Grüße,
Moritz