Mal funtionierts, mal nicht
-
Christi258 schrieb:
Der Debugger zeigt mir an, dass demnach fread() irgenwo nicht richtig ausliest!
Mit so wenig Information können wir dir schlecht helfen. Zeig doch einfach mal ein wenig Code.
Btw, woran erkennst du denn, dass fread nicht richtig liest. Erklär mal.
-
Ich nehme an, dass es an fread() liegt, weil die Dateien das richte gespeichert haben.
//Struktur die beliebig mal in der Datei gespeichert wird typedef struct { char deutsch[50]; char fremdwort[50]; int status; int richtig; }einWort; //so wird die struktur jedes mal gespeichert void speichern(einWort *speicher) { datei = fopen(sprache,"a"); fwrite(speicher,sizeof(einWort),1,datei); fclose(datei); } //so wird sie wieder ausgelesen void auslesen(einWort *ziel) { datei = fopen(sprache,"r"); fread(&ziel,sizeof(einWort),1,datei); fclose(); }
-
Ist dir klar, dass deine auslesen-Funktion immer nur den ersten Eintrag aus der Datei liest?
-
Code endlich mal gezeigt, Fehler gefunden - so schnell kann's gehen! Jetzt muss mir nur noch einer erklären, warum das auf deinem System angeblich funktioniert. Sicher, dass du die gleiche exe ausführst?
-
void auslesen(einWort *ziel) { // ... fread(&ziel,sizeof(einWort),1,datei); }
Die Frage ist: was macht der Adressoperator '&' dort?
-
MFK schrieb:
Ist dir klar, dass deine auslesen-Funktion immer nur den ersten Eintrag aus der Datei liest?
Das ist nicht die orginale Funktion, die wäre sonst zu kompliziert, die eigentliche läuft schon in einer schleife durch und sollte damit nicht nur die erste Struktur auslesen.
Die Frage ist: was macht der Adressoperator '&' dort?
Sorry, gleiche begründung wie oben, im orginalen ist kein adressoperator!
-
Christi258 schrieb:
Das ist nicht die orginale Funktion
Ganz toll. Schickst du auch jemand anderen zum Arzt, wenn du krank bist? Der Arzt untersucht dann diese andere Person und stellt fest, was dir fehlt.
Zeig den echten Code. Wenn du denn unbedingt meinst, uns Beispielcode zeigen zu müssen, dann prüfe vorher, ob der Beispielcode das fehlerhafte Verhalten zeigt. Ansonsten ist das hier völlig sinnlos.
-
MFK schrieb:
Das hier ist völlig sinnlos.
FTFY
-
ja egal vergesst es, wenn ich euch den code posten würde müsste ich 10 Seiten erklärung abgeben bis da irgenjemand was kapiert...
-
Es muss nicht der ganze Code sein. Es reicht ein Minimalbeispiel, dass den Fehler aufweist.