Warum wird das nicht binär gespeichert?
-
Hallo alle!
Ich habe in einem vector der Klasse "wetterdatum" ein paar Einträge gespeichert und möchte diese nun binär in eine Datei schreiben. Funktioniert aber irgendwie nicht :(. Kann mir da einer sagen warum?
messort ist ein String, die anderen Variablen sind long und short.
if (eintrag.size() > 0) { ofstream fileOut(DBFilename.c_str(), ios::out|ios::binary); for (int i=0;i<eintrag.size();++i) { fileOut.width(20); fileOut.setf(ios::left); fileOut << eintrag[i].messort; fileOut.width(0); fileOut << " " << eintrag[i].datumUhrzeit << " " << eintrag[i].temperatur << " " << eintrag[i].luftdruck << " " << eintrag[i].luftfeuchte << " " << eintrag[i].windgeschwindigkeit << " " << eintrag[i].windrichtung << endl; } fileOut.close();
THX
-
Binär schreibt man mit der Memberfunktion write
-
aber warum gibt es denn das FLAG ios::binary, wenn man nur über write schreiben kann?
-
Du rufst doch immer den operator << für jeden Typ auf. Und der schreibt eben nicht binär.
-
AFAIK heißt ios::binary nur, dass '\n' unter Windows nicht in '\n\r' übersetzt wird, sondern eben direkt als '\n' geschrieben wird. Bei Textausgaben will man diese Übersetzung ja normalerweise.