PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Speichern von eigenen Datentypen



latexter
12-10-2007, 20:57
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!!!

panzi
13-10-2007, 03:03
Natürlich geht das. Such nach Opertator überladen und im Speziellem nach "operator <<".

BLUESCREEN3D
13-10-2007, 16:39
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 :D

RHBaum
15-10-2007, 16:03
Bei einigen der Daten bietet sich unsigned short an - oder gibt es z.B. negative Hausnummern?
neee aber z.b. 18a :eek:

hausnummern wuerd ich auch strings nehmen ....

Ciao ...