Datei ändern
-
Hallo,
hier mal ein kleiner ausschnitt aus einem programm. ich möchte die datei öffnen, die werte lesen und dann die datei mit neuen werten überschreiben.
hat jemand eine idee wieso dies nicht funktioniert?
datei=fopen("komplexe_zahlen","rb+wb");
fscanf(datei,"%lf %lf",&z1.real,&z1.imag);
fscanf(datei,"%lf %lf",&z2.real,&z2.imag);
fscanf(datei,"%lf %lf",&z3.real,&z3.imag);if(x==1)
{fprintf(datei,"%lf %lf\n",z1.real,z1.imag);
fprintf(datei,"%lf %lf\n",z2.real,z2.imag);
fprintf(datei,"%lf %lf\n",z3.real,z3.imag);}
else if(x==2)
{fprintf(datei,"%lf %lf\n",z1.real,z1.imag);
fprintf(datei,"%lf %lf\n",z2.real,z2.imag);
fprintf(datei,"%lf %lf\n",z3.real,z3.imag);}
else
{fprintf(datei,"%lf %lf\n",z1.real,z1.imag);
fprintf(datei,"%lf %lf\n",z2.real,z2.imag);
fprintf(datei,"%lf %lf\n",z3.real,z3.imag);}
fclose(datei);
-
Vermute hier ist dein Problem beschrieben:
http://stackoverflow.com/questions/4264127/correct-format-specifier-for-double-in-printfMfG f.-th.
-
f.-th. schrieb:
Vermute hier ist dein Problem beschrieben:
http://stackoverflow.com/questions/4264127/correct-format-specifier-for-double-in-printfMfG f.-th.
Nein, hier sind wahrscheinlich noch andere Probleme am Start. Gleichzeitig schreiben und lesen ist immer problematisch, wenn man nicht haargenau weiß, wie das mit Lese- und Schreibzeiger und den Fehlerindikatoren geht. Und man muss ganz allgemein Konzept einer Datei als Zeichenstrom (anstatt einer Sammlung von Zeilen. Zeilenumbrüche in einer Datei sind bloß ein weiteres Zeichen von vielen) verstanden haben.
Da überhaupt nichts davon im Code zu sehen ist, nehme ich mal stark an, das hier die Fehlerursache liegt.
Einfache Abhilfe, ohne das alles lernen zu müssen: Datei zum Lesen öffnen, lesen, Datei schließen, Datei zum Schreiben öffnen (oder kurz freopen), dann schreiben.