Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Speichern von eigenen Datentypen

  1. #1
    Registrierter Benutzer
    Registriert seit
    02.10.2007
    Beiträge
    15

    Speichern von eigenen Datentypen

    Hallo,
    Ich beginne gerade C++ zu lernen.
    Ich schrebe als Übung ein "Notizbuch"
    Meine Klasse sieht folgendermaßen aus:

    class notizbuch //legt den Datentyp notizbuch fest
    { public:
    char vorname[10];
    char nachname[10];
    short geburtstag;
    short geburtsmonat;
    short geburtsjahr;
    char Land[10];
    char Ort[10];
    char Stadt[10];
    char Bezirk[10];
    char Strasse[10];
    short hausnummer;
    char Hobbys[50];
    char Dateiname[20];
    };
    Wenn ich eine "Notiz" nun speichern will, muss ich jeden Bestandteil einzeln speichern:

    void Speichern(notizbuch notiz[100])
    {ofstream file1;
    file1.open( "Meine Notizen.txt" , ios:: out );
    for (int n=0;n<=anzahl-1;n++)
    { file1 <<notiz[n].vorname;
    file1 <<notiz[n].nachname;
    file1 <<notiz[n].geburtstag;
    file1 <<notiz[n].geburtsmonat;
    file1 <<notiz[n].geburtsjahr;
    file1 <<notiz[n].Land;
    file1 <<notiz[n].Ort;
    file1 <<notiz[n].Stadt;
    file1 <<notiz[n].Bezirk;
    file1 <<notiz[n].Strasse;
    file1 <<notiz[n].hausnummer;
    file1 <<notiz[n].Hobbys;
    file1 <<notiz[n].Dateiname;
    }

    file1.close( );
    Geht es nicht, dass ich den ganzen Datentyp auf einmal speichere
    Ich meinte es so(ging aber nicht):
    void Speichern(int anzahl, notizbuch notiz[100])
    {ofstream file1;
    file1.open( "Meine Notizen.txt" , ios:: out );
    for (int n=0;n<=anzahl-1;n++)
    { file1 <<notiz[n];
    }

    file1.close( );

    Es würde mich sehr freuen, wenn ihr mir helfen könntet. Danke!!!

  2. #2
    Registrierter Benutzer Avatar von panzi
    Registriert seit
    04.05.2001
    Ort
    Kottingbrunn
    Beiträge
    609
    Natürlich geht das. Such nach Opertator überladen und im Speziellem nach "operator <<".
    Intel Core 2 Duo CPU 2.66GHz; Nvidia GeForce 8 8800 GTS; 4GB RAM; Fedora 12; KDE-testing

  3. #3
    Registrierter Benutzer Avatar von BLUESCREEN3D
    Registriert seit
    08.11.2002
    Beiträge
    665
    Wenn du schon C++ lernen willst, dann benutz std::string statt char-Arrays.
    Dafür brauchst du "#include <string>".

    Und das Problem, dass du der Funktion die Arraygröße übergeben musst, könntest du lösen, indem du einen std::vector statt eines Arrays benutzt.

    Außerdem solltest du nach open() prüfen, ob die Datei auch wirklich geöffnet wurde oder ob es einen Fehler gab.

    Bei einigen der Daten bietet sich unsigned short an - oder gibt es z.B. negative Hausnummern?

    So, das war erstmal genug Kritik

  4. #4
    Registrierter Benutzer
    Registriert seit
    18.03.2005
    Beiträge
    211
    Bei einigen der Daten bietet sich unsigned short an - oder gibt es z.B. negative Hausnummern?
    neee aber z.b. 18a

    hausnummern wuerd ich auch strings nehmen ....

    Ciao ...

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •