sizeof
-
ist es moeglich mit sizeof(stdin) die laenge der Eingabe zu erhalten, oder geht dass nur umstandlich mit einer schleifE?
-
Mit sizeof bekommst du die Größe eines Objektes im Speicher. Da stdin ein FILE* ist, wirst du damit konstant 4 herausbekommen (auf 32bit-PCs).
Was soll eigentlich die Länge der Eingabe sein? Kannst du das mal näher erläutern, auch, wozu du diesen Wert brauchst?
-
(1) nein
(2) schlechte idee. erst lesen, dann laenge bestimmen.
-
ich moechte die laenge der eingabe erhalten, damich ich spaeter ein dynamisches array mit genau dieser groesse anlegen kann
mein prolem ist jetzt, die laenge der eingabe zu ermitteln, leerzeichen eingeschlossen
-
Du kannst nicht wissen, wie lang die Eingabe ist, bevor du sie gelesen hast.
-
dann liest du erstmal vielleicht 100 zeichen.
wenn das funktioniert, vergroesserst du deinen speicher aufs doppelte (realloc) und liest weiter.
geht das auch gut, verdoppelst du wieder etc...
-
moep98 schrieb:
mein prolem ist jetzt, die laenge der eingabe zu ermitteln, leerzeichen eingeschlossen
Das Problem bei diesem Ansatz ist wohl, daß sich dieser Wert ständig erhöht, wenn der Nutzer weitere Eingaben macht (stdin ist defaultmäßig die Tastatur). Deshalb ist es wohl besser, den besetzten Speicher während des Einlesens zu vergößern.
(bei Dateien könntest du die Größe noch per fseek/ftell herausbekommen)