ich bin mit diesem Code ein bisschen Kopfschmerzen mit:C Dateien triying zu überschreiben
FILE usuaris*
....
usuaris=fopen("usuarisfinal.txt","a+b");
fseek(usuaris,(pos-1)*sizeof(Tusuari),SEEK_SET);
fwrite(&usuaux,sizeof(Tusuari),1,usuaris);
Was ich tun möchte, ist ein Tusuari registrieren mit „usuaux“ in der Position „pos“ zu überschreiben, aber ich füge am Ende der Datei "usuaux" hinzu. Ich bin mir bewusst, dass ich den Modus "a + b" in "r + b" ändern kann, aber ich verstehe nicht ganz, warum ich nicht in der Lage bin, es so zu machen!
P.S. Sorry für die möglichen Fehler, Englisch ist irgendwie eine dritte Sprache für mich!
Sie haben die Datei mit 'a' (append)' geöffnet, so dass alle Schreiboperationen an die Datei angehängt werden. Das ist die Wurzel des Problems. Verwenden eines "Modus" von Read Plus Binary :("r + b") sagt 1) Ich möchte die Datei lesen. 2) Ich möchte in die Datei schreiben, wo auch immer der aktuelle Dateipositionsindikator. und 3) Ich möchte alle Lese- und Schreiboperationen mit 'binary' durchführen (keine spezielle Behandlung von Zeilenumbrüchen usw.). Auch nicht 'w + b' als Öffnung für 'write' zu verwenden, führt dazu, dass die Datei abgeschnitten wird während der 'fopen()' – user3629249