Nur bestimmte Stellen auslesen?
-
Ah ja, dann mußt du das genau umgekehrt machen - seekp() setzt den Schreibzeiger der Datei (wenn erforderlich), write() schreibt die Daten.
-
Sorry das ich schon wieder nerv,
aber könntest Du mir bitte ein konretes Beispiel geben.
Ich blicks heut noch nicht. War gestern auf dem Fasching. Sorry
-
Na gut, weil du's bist:
char data[7]; ...//data mit Werten füllen file.seekp(115); //Ziel ansteuern file.write(data,6);//Daten schreiben
-
Super, vielen Dank
Bist ne Wucht!
-
Irgendwie muß ich ja beweisen, daß ich meinen Posten zu Recht bekommen habe
-
so jetzt bin ichs nochmal,
und zwar lese ich mit ner schleife meine werte ein und gib sie aus. das problem ist ja das jedesmal die datei neu angelegt wird und meine werte dann überschrieben werden.
Wie kann ich denn des abfangen?
-
Du mußt die Datei nur einmal vor Beginn der Schleife öffnen und während der Arbeit geöffnet lassen
(ist neben dem Effekt, daß ofstream per Default eine "frische" Datei anlegt, auch deutlich schneller)
Wenn du an mehreren Stellen des Programms schreiben willst, kannst du auch die Datei zum Anhängen öffnen:
ofstream fout("daten.dat",ios::out/*Ausgabe*/ | ios::append/*füge an vorhandene Daten an*/);
-
ok, hab schon wieder zwei probleme und zwar wenn ich den stream in der main(die schleife ist eigene funktion) öffne dann sagt er unbekannter bezeichner obwohl er ihn ja kennen müsste und append ist auch ein nichtdeklarierter Bezeichner.
-
flip schrieb:
ok, hab schon wieder zwei probleme und zwar wenn ich den stream in der main(die schleife ist eigene funktion) öffne dann sagt er unbekannter bezeichner obwohl er ihn ja kennen müsste
Ja, wenn du den Stream in der main deklarierst, ist er lokal zur main() - d.h. du müsstest ihn per Parameter an deine Funktion weitergeben (Referenz).
und append ist auch ein nichtdeklarierter Bezeichner.
*an den Kopf greift* Sorry, der heißt "ios::app"
-
Hi,
ich bins nochmal. Also klappt soweit ganz gut. Nur schreibt er mir jetzt alles zusammen. Was kann ich denn machen das er mir z.B. 5 Zeichen zwischen den Werten frei lässt?
Vg
-
Tip: entsprechend viele Leerzeichen zwischen den Werten ausgeben (am einfachsten per "fout<<" ";").
(PS: wenn du das File mit ios::app öffnest, werden seekp()-Aufrufe übrigens ignoriert - alle Ausgaben werden ans Dateiende angehängt. Eventuell wäre is::ate brauchbarer, je nach Anwendung)