Wie kann ich eine Datei zum Lesen und Schreiben öffnen und sie erstellen, wenn sie nicht vorhanden ist, ohne sie abzuschneiden?

Was ist der richtige Satz von E / A-Flags für einstd::fstream, wo möchte ich von @ lesen könnun In die Datei schreiben, ohne die Datei abzuschneiden, falls vorhanden, aber zu erstellen, falls nicht?

Ich habe es versuch

std::ios::binary | std::ios::in | std::ios::out
std::ios::binary | std::ios::in | std::ios::out | std::ios::ate

Aber keines von beiden erstellt die Datei, wenn sie noch nicht existiert.

Ich will nichtstd::ios::app, weil ich auch in der Lage sein muss, die Datei nach Belieben zu durchsuchen, wobei sowohl dasbekomme undstelle Cursor.

Eine Problemumgehung besteht vermutlich darin, ein @ zu instanziierestd::ofstream zuerst, dann sofort schließen und den Stream öffnen, den ich wirklich möchte, aber das scheint chaotisch zu sein, wenn es mit einem einzelnen Stream-Objekt vermieden werden kann.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage