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.


Anmelden zum Antworten