Dies ist ein Anfänger C++ - Hausaufgaben-Problem, ich weiß über Vektor, aber es ist nicht erlaubt, in diesem assigment zu verwenden. Ich suchte herum und fand, wie man eine array[]
von unbekannter Größe auch macht. Aber es ist ein bisschen tricky (irgendwie). Das Beispiel, das ich lese, ist in etwa wie folgt: Erhalte eine Eingabe und erstelle dann die Array-Basis an dieser Eingabe (Größe n).Array unbekannter Größe basiert auf der Eingabedatei
Ich habe diese Studentenklasse erstellt, aber jetzt brauche ich eine array
, um sie zu speichern. Ich weiß nicht im Voraus, wie viele Studenten dort sein werden. Ich habe nur eine Textdatei mit jedem Schüler in einer Zeile. Das Format ist unten, das Sample ist ungefähr 5, aber ich weiß nicht, wie viel der Lehrer verwenden wird, um mein Programm zu testen.
Eingabedatei wie folgt aus:
George Chan Computer_Science New York 23
Johnny Chan Computer_Science New Jersery 22
....
Aber das Problem ist, ich weiß nicht, wie viele Schüler gibt es, bis ich den ganzen Text Kachel gelesen haben (oder ich weiß nicht, ob es andere Art und Weise sind es zu tun). Mein aktueller Ansatz ist es, Zeile für Zeile zu lesen, einen Zähler studentCounter
zu erhöhen, bis ich fertig bin, dann erstelle ich meine Student* myRoster = Student[studentCounter]
. Aber dann, wenn ich anfangen muss, die Datei zu lesen wieder. Und gehen Sie Zeile für Zeile, um die Informationen zu analysieren und ein Student
Objekt zu erstellen und lassen Sie eine myRoster[x]
darauf hinweisen. Ich habe das Gefühl, dass ich die Arbeit zweimal mache, nur um die richtige Größe zu haben. Gibt es ein paar Tricks oder Dinge, die ich vermisse?
Vielen Dank.
Ich nehme an, dass Sie dann nicht std :: list verwenden können. –
sprechen Sie mit Ihrem Lehrer. Entweder sollte eine maximale Anzahl an Schülern vorhanden sein oder Sie sollten einen Standardcontainer verwenden können. Wenn Sie mit beiden Recht haben, finden Sie einen neuen Lehrer/eine neue Schule. –
@MooingDuck Ich bekomme die gleiche Antwort wie diese in meiner letzten Frage: O ... – George