Dynamische Array-Strukturen in C++



  • Hallo,
    ich habe ein Programm geschrieben das Datensätze aus einer Textdatei einliest.
    Die Datensätze in der Textdatei sehen so aus:
    datum;zahl;zahl;Zahl;

    Das Trennzeichen ist hier das Semikolon. Ich kann nach der Zerlegung des String die einzelnen Teilstring auf dem Bildschirm ausgeben aber für mich ist es wichtig diese Teilstring in eine dynamische Array-Struktrur zu packen.
    Meine Struktur sieht folgendermaßen aus:

    struct name_der_struktur
    {
    //Ich habe 4 Variablen für die jeweils 4 Informationen definiert, die man aus dem eingelesenen String bekommt
    char *datum;
    int *max;
    int *leistung;
    int *min ;
    
    };
    

    Ich habe die Variablen in der Struktur als Pointer deklariert weil ich sie später als dynamische Arrays verwenden möchte, z.b.:

    datum = new char[anzahl_felder];
    

    Kann mir jemand zeigen wie ich die einzelnen Teilstring in die dynamische Struktur packen kann? Ich habe noch das Problem, dass die letzen 3 Teilstrings in Integer-Variablen umgewandelt werden müssen bevor sie der Struktur zugefügt werden.
    Ist meine Vorgehensweise mit der dynamischen Array-Struktur richtig?
    Ich hoffe, dass mir jemand mit einem guten Rat oder mit ein Paar Zeilen Code weiterhelfen kann.

    Danke schön


  • Mod

    Du suchst std::vector. Das ist das gleiche wie deine dynamischen Arrays, aber ohne die Nachteile und mit einem schönen Interface. Einfach mal nach googlen.



  • Hallo SeppJ,
    ich danke dir für die schnelle Antwort.
    Ich weiß, dass die Lösung mit Vektoren viel schöner ist aber dieses Mal muss ich mit dynamischen Array arbeiten.
    Eine Lösung mit Vektoren habe ich schon.
    Jedenfalls danke ich dir für den Tipp.


  • Mod

    Dann läuft das im Prinzip auf ein nachprogrammieren von vector hinaus, wenn es gut werden soll. Du Armer 😞 . Falls du schon vor dem Füllen des Arrays weißt, wieviele Einträge es insgesamt werden, kannst du dir immerhin das dynamische Mitwachsen sparen, was die Aufgabe schon erheblich einfacher macht. Trotzdem: Du Armer 😞 .

    Als Anfang gebe ich dir mal den Tipp, dass du besser ein struct

    struct datensatz
    {
    string datum;  // Und nimm um deiner mentalen Gesundheit willen bitte string, statt char*!
    int max;
    int leistung;
    int min ;
    };
    

    machst und dann ein Array von diesen structs benutzt, anstatt 4 einzelnen Arrays.

    Weiterhin noch zwei gute Stichworte zum Googlen, damit du nicht in die typischen Anfängerfallen läufst:
    Google: Rule of the big three
    Google: RAII



  • Danke SeppJ, ich werde mich melden wenn ich Weiteres und Neues zu berichten habe.


Anmelden zum Antworten