Mehrere Worte einlesen
-
Hallo zusammen
Ich bin C-Programmieranfänger und habe folgende Frage:
Ich schreibe ein Programm, das beliebig viele Eingaben vom User speichert und sortiert.
Mein Problem: Ich würde das gerne so haben, dass der User so lange seine Eingaben macht, bis er eine Zeile leer lässt. Die Eingaben sollen gespeichert werden.
Und das ist mein Problem: Wie kann ich diese Eingabe speichern? Ich weiss ja nicht im Voraus, wie viele Eingaben der Benutzer machen wird. Und da die Eingaben aus Wörtern, sprich mehreren Zeichen/chars bestehen, kann ich nicht einfach ein entsprechendes char-Array erstellen.
Meine Frage: Wie lässt sich das anstellen? Geht das doch mit Arrays oder gibt es eine andere - nicht zu komplizierte - Lösung?
Ich hoffe auf eure Antwort...
greetz
suì
-
wenn du damit leben kannst das die anzahl der möglichen eingaben begrenzt ist dann kannst du ein statisches zweidimensionales array erstellen
char ar[50][20]; // erste klammer: maximale länge, zweite klammer: größe des arrays
ansonsten kannst du dir einen vektor (dynamisches array) zusammenbauen, bei dem du dann mit entsprechenden funktionen einträge hinzufügen kannst
fgets(temp, 120, stdin); NeuerEintrag(temp);
hierzu brauchst du die funktionen malloc und free
-
Hi!
suì schrieb:
Wie kann ich diese Eingabe speichern?
Weitere Möglichkeiten sind:
In einem char** Array oder in einer verketteten Liste.
-
Wie kann ich diese Eingabe speichern?
Weitere Möglichkeiten sind:
alle die dir einfallen, sowie alle, die dir nicht einfallen.
-
Egal wie - irgendwann ist ne Grenze erreicht - entweder das Array oder der
Speicher laufen über. Sieh doch nen Puffer von
sagen wir mal 100 Eingaben vor und warne den Benutzer, wenn das Limit
erreicht wird. - Ansonsten halt jede Eingabe in einer temporären Datei
zwischenspeichern und bei heutigen Plattengrößen hat sich der Benutzer
mit Sicherheit die Finger weggeschrieben, bevor es zu einem Engpass kommt - ja
die Finger nutzen sich auch ab - genau wie Pferdehufe - grins...
So in der Art haben wir früher auf der S/370 programmiert, da war
Speicher immer knapp....