Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Binär in eine Datei schreiben

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
05.01.2006, 15:31 Uhr
~Taake
Gast


Hallo,

irgendwie hatte die Suchfunktion Problemen gemacht als ich nach bereits erstellten Threads suchen wollte. Deshalb erstmal sorry wenn es solch ein Thema schon gibt.

Und zwar möchte ich binär ein Struct Punkt, bestehend aus 2 Integer Werten in eine Datei (punkte.dat) schreiben. Die Werte des Punkt p werden ihm aus einer Liste zugewiesen. Ich bekomme keine Fehlermeldung allerdings funktioniert die Schreibfunktion nicht, d.h. die Datei bleibt einfach ohne Inhalt.


C++:
void speichern(ELEMENT *liste)
{
Punkt p;
    FILE *fp=fopen("punkte.dat","wb");
    
    if(liste == NULL)
        printf("Liste ist leer\n");
    
    else
        do
        {
            p = liste->inhalt;
            fwrite(&p,sizeof(Punkt),1,fp);
            if (liste->next != NULL)
                liste = liste->next;
        }
        while(liste->next != NULL);
    fclose(fp);
}



schon mal vielen Dank im vorraus!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.01.2006, 22:27 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


sieht zunächst halbwegs richtig aus auch wenn ich nicht genau weiss (bzw nur vermuten kann) wie du dein ELEMENT defniert hast... Ich geh mal von aus inhalt ist direkt ein Punkt-struct und nicht ein zeiger... dann müstse das eigentlich stimmen so wie du das machst...

das was mir komisch scheint ist das du liste nur auf liste->next setzt wenn liste->next ungleich null ist. deine schleifenbedigung sagt aber das liste->next ungleich Null sein muss damit sie abbricht.... sieht mir nach endlosschleife aus...

eine zuweisung ist für nen Punkt ist nicht mehr nötig und auch ist eine do while schleife "unpassend"... pack es doch gleich in eine while schleife und spar dir die abfrage auf ne leere liste...

ungetestet so...

C++:
while(liste!=NULL){
   fwrite(&liste->inhalt,sizeof(Punkt),1,fp);
   liste=liste->next;


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: