Anzeige:
Ergebnis 1 bis 9 von 9

Thema: struktnur in datei speicher

  1. #1
    Registrierter Benutzer
    Registriert seit
    26.11.2002
    Beiträge
    61

    struktnur in datei speicher

    Wie speichere ich eine Komplette struktur in einer datei?

    habe es schon so probiert aber das tut so nicht.

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

  2. #2
    Registrierter Benutzer
    Registriert seit
    25.01.2003
    Beiträge
    222
    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.

  3. #3
    Registrierter Benutzer
    Registriert seit
    26.11.2002
    Beiträge
    61
    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

  4. #4
    Registrierter Benutzer
    Registriert seit
    14.07.2000
    Beiträge
    32
    Wir haben in der BSchule das hier gemacht: (leider unter Win...)
    Code:
    #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
    Geändert von 3qualizer (15-02-2003 um 10:21 Uhr)

  5. #5
    Registrierter Benutzer
    Registriert seit
    26.11.2002
    Beiträge
    61
    Gute idee danke aber das ist c++ mal schauen ob das auch mit c geht.

  6. #6
    Registrierter Benutzer
    Registriert seit
    11.04.2001
    Ort
    Bremen
    Beiträge
    339
    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

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

    c ya,
    Tobias

  7. #7
    Registrierter Benutzer
    Registriert seit
    25.01.2003
    Beiträge
    222
    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.

  8. #8
    Registrierter Benutzer
    Registriert seit
    11.04.2001
    Ort
    Bremen
    Beiträge
    339
    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

  9. #9
    Registrierter Benutzer
    Registriert seit
    26.11.2002
    Beiträge
    61
    Der linkt ist echt gut danke fuer die tips

Lesezeichen

Berechtigungen

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