Struktur & Streams



  • Kann mir jemand zeigen, wie man ganze Strukturen in Dateien speichert und sie wieder einliest? Habe nur eine Lösung gefunden, indem ich die einzelnen Strukturkomponenten ausgebe. Dann klappt aber das Einlesen nicht mehr! Es soll eine Datenbank entstehen:

    void struktur()			
    	struct tDaten
    	{
    		char   name[20];
    		char   vorname[20];
    		int    klassenstufe;
    		char   klasse;
    		double lauf;
    		double sprung;
    		double wurf;
    		int    gesamtpunktzahl;
    		};
             tDaten schueler;
    
             ofstream ausgabe;
    	ausgabe.open("c:\\schueler.dat", ios::out|ios::app);
    


  • Wenn du einzeln speicherst, dann musst du auch einzeln einlesen. Du kannst natürlich auch mit read und write arbeiten, dann ist die Ausgabedatei allerdings Plattform- und Compileabhängig.

    Gruß Tobias



  • Frage:

    list Du mit operator<< ein und ab dem char Feldern kommt was falsches bei raus ?



  • struct tDaten 
        { 
            std::string name;    // der umgang mit string ist einfacher, als der mit char.
            std::string vorname; 
            int         klassenstufe; 
            char        klasse; 
            double      lauf; 
            double      sprung; 
            double      wurf; 
            int         gesamtpunktzahl; 
        }; 
    
    ostream & operator << (ostream & os, tDaten const & daten)
    {
       // wie willst du die zeichen voneinander Trennen?
       os << name << " "
          << vorname << " "
          << klassenstrufe << " "
          ...
    }
    

    Entsprechend schribst du einen operator >>


Anmelden zum Antworten