std::fstream in klasse deklariert -> funktioniert nicht zur laufzeit
-
hi!
class A { public: A(); ~A(); std::fstream filestream; void OpenAndWrite(); }; void A::OpenAndWrite() { filestream.open("neu.txt", std::ios::out | std::ios::trunc); filestream << "HALLO"; }Wenn ich nun aber in main() die besagte Funktion aufrufe:
A inst; A.OpenAndWrite();, so erstellt er mir zwar die datei "neu.txt", aber er schreibt nichts rein. wenn ich mit filestream.is_open() abfrage dann ergibt das 0. Wieso verdammt öffnet er die datei nicht dauerhaft? wenn ich innerhalb der funktion ein neues std::fstream deklariere und öffne etc dann funktioniert das. wieso aber kann er aber den nicht mit dem klassenmember arbeiten? HÖ?
PS: auch wenn ich filestream als pointer anlege funktioniert es nicht (nur weil es ja hätte sein können dass open() zusätzlichen speicher benötigt wwi)
HILFE! und danke im vorrraus
chris90
-
1. Muss
A.OpenAndWrite();so heißen:
inst.OpenAndWrite();2. Funktioniert es, wenn man das ändert bei mir.
Felix
-
3. bei so wenig Daten kann es sein, daß die im Schreibbuffer zurückgelassen werden, bis die Datei geflusht wird (das passiert durch f.flush(), f<<endl oder auch f.close() - von denen verwendest du keinen)