PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : struktnur in datei speicher



sven1978
14-02-2003, 18:50
Wie speichere ich eine Komplette struktur in einer datei?

habe es schon so probiert aber das tut so nicht.


void struktur_speichern(struct liste struktur) {
FILE *dateizeiger;
dateizeiger=fopen("Buchliste.txt","w");
fprintf(dateizeiger,struktur);
flcose(dateizeiger);
}

arthur
14-02-2003, 19:57
c(++) bietet keine serialisierung wie zb. java deswegen
muss du selber dafür sorgen dass die daten aus deiner
struktur richtig gespeichert werden.
das heisst du bräuchtest noch eine funktion(methode)
der du den file pointer und deine struktur übergibst.
dort gehst du einfach alle elemente deiner struktur durch
und speicherst sie nach wunsch in der datei.

sven1978
15-02-2003, 06:55
ok das habe ich mir selber auch schon gedacht habe es aber gelassen weil es ja dann ein ziemliechr aufwand wird vorallem sie wieder zu holen

aber wenn es nicht anderst geht was solls

3qualizer
15-02-2003, 09:16
Wir haben in der BSchule das hier gemacht: (leider unter Win...)
#include <iostream.h>
#include <stdio.h>

int main() {
struct Anschrift {
char Name[40];
char Strasse[40];
char Ort[40];
};

Anschrift Anshcrift1;

FILE *dt_zeiger;

cout << endl << endl;
cout << "Kunenname: ";
cin >> Anschrift1.Name;
cout << "Strasse: ";
cin >> Anschrift1.Strasse;
cout << "Ort: ";
cin >> Anschrift1.Ort;

dt_zeiger = fopen( "Anschrift.dat", "a+" );

if( dt_zeiger == NULL ) {
cout << "Dateifehler";
getch();
return 1;
}

fwrite( &Anschrift1, sizeof( struct Anschrift ), 1, dt_zeiger );
fclose( dt_zeiger );

dt_zeiger = fopen( "Anschrift.dat", "r" );
while( fread( &Anschrift1, sizeof( struct Anschrift ), 1, dt_zeiger ) != 0 ) {
cout << endl << "Kundenname: " << Anschrift1.Name;
cout << endl << "Strasse: " << Anschrift1.Strasse;
cout << endl << "Ort: " << Anschrift1.Ort;
cout << endl;
}

fclose( dt_zeiger );
getch();
}ich denke schon, das das möglich ist ;)

Eric

EDIT: jetzt sollts laufen :)

sven1978
15-02-2003, 09:22
Gute idee danke aber das ist c++ mal schauen ob das auch mit c geht.

tkortkamp
15-02-2003, 11:24
Original geschrieben von sven1978
Gute idee danke aber das ist c++ mal schauen ob das auch mit c geht.
Würde das eher als Gemisch bezeichnen :p

Kannst ja einfach cout mit printf und cin mit scanf ersetzen.

c ya,
Tobias

arthur
15-02-2003, 11:24
das klappt hier aber nur für einfache structs
@sven1978:
du kannst das beispiel programm auch unter c nutzen, du musst
nur die iostream sachen (cout,cin) rausschmeissen, der rest ist nur noch c.

tkortkamp
15-02-2003, 11:35
sven1978:
Hier http://www.pronix.de/C/standard_C/ckurs/ckurs92.html findest du noch eine gute Erklärung inkl. Beispiel zum Thema.

c ya,
Tobias

sven1978
16-02-2003, 22:20
Der linkt ist echt gut danke fuer die tips