template-Funktionen zum einlesen / ausgeben von Feldern



  • Hallo,

    ich soll 3 txt-Dateien in Felder einlesen und wieder ausgeben.

    - ein double-Feld (double.txt)
    - ein string-Feld (strings.txt)
    - ein Student-Feld (studenten.txt)

    Beispiel für Student-Typ: Carl-Friedrich Gauss 111111 1.0

    struct Student
    {
        std::string Vorname, Nachname;
        int         MatNr;
        double      Note;
    };
    

    Ein- und Ausgabeoperatoren für diesen benutzerdef. Dateityp habe ich bereits
    implementiert.
    Es geht sich also nur um die template-Funktionen

    template<typename ElemT>
    void einlesen( std::ifstream& ifs, std::vector<ElemT>& feld)
    

    und

    template<typename ElemT>
    void ausgeben( std::ostream& os, const std::vector<ElemT>& feld)
    

    Bin noch absoluter C++-Anfänger und habe noch nicht mit templates gearbeitet,
    und auch das Ein-/Auslesen von Dateien bereitet mir Schwierigkeiten.

    Ich will mit 'ifs.eof()' überprüfen ob das Ende der Datei erreicht ist (nach jedem Lesen?)
    Würde sich hier eine Schleife anbieten?
    Da die Anzahl der zu lesenden Dateien nicht feststeht, kann ich jede eingelesene
    Datei mit 'push_back' hinten an den Vektor feld hängen oder?
    Das sind meine Ideen zum Einlesen.

    Im Voraus schon mal vielen Dank für eure Hilfe 🙂


  • Mod

    Wenn du nur den Teil mit dem Einlesen von doubles machen wolltest und die templates wegließest:

    void einlesen( std::ifstream& ifs, std::vector<double>& feld)
    

    Wie würdest du es dann machen?



  • Hab's heute fertiggestellt.
    Danke !!


Anmelden zum Antworten