std::ofstream + binary, ate
-
hi - fällt euch an den 2 zeilen hier iwas seltsames auf:
const std::string path("X:/tmp.dat"); std::ofstream stream( path.c_str(), std::ios_base::binary | std::ios_base::in | std::ios_base::ate );
OS ist Windows (wegen der Pfadangabe evtl wichtig) und er kann die Datei nicht öffnen - egal, ob sie schon existiert oder er sie erst noch erstellen muss...
Falls ich irgendetwas so falsch machen sollte, dass ihr nicht erkennt, was ich machen möchte:
ich möchte binär(binary
) in(in
) die Datei xyz schreiben - und wenn die Datei schon existiert, soll nur was rangehangen werden(ate
).Hab ich da irgend nen Denkfehler drin?
So bald ich ate weglasse, funktioniert es immer - wenn ich es so lasse, funktioniert es nur manchmal(kein Muster zu erkennen und ich habs auch nich iwie reproduzieren können, der Fehler liegt aber 100%ig in diesen Zeilen)
Evtl weiß ja auch wer, wie ich rausbekommen kann, warum er die datei nich erstellen/öffnen konnte?!bb
-
Wäre die korrekte Angabe für den
openmode
nicht eher:std::ofstream stream( path.c_str(), std::ios_base::binary | std::ios_base::out | std::ios_base::app );
out
für das Schreiben (in
ist nämlich lesen) undapp
für append (ate
setzt nur die Position auf das Ende).
http://www.cplusplus.com/reference/iostream/ofstream/ofstream/Grüssli
-
Ty