hex direkt in datei schreiben



  • Hi !!

    Ich will eine Tiff Datei erzeugen und möchte dafür als erstes den Header in die Datei schreiben.

    Die ersten 4 Bytes sehen so aus: 4d 4d 00 2a.

    ich habs folgendermaßen versuch:

    ofstream ofl("out.tiff", ios::binary);
    
    ofl << 0x4d4d002a;
    
    ofl.close();
    

    Wenn ich mir die entstandene Datei nun anschaue so hat das erste Byte noch den Wert 4d, das zweite aber nicht mehr.

    also dachte ich es müsste zumindest so gehen:

    ofstream ofl("out.tiff", ios::binary);
    
    ofl << 0x4d << 0x4d << 0x00 << 0x2a;
    
    ofl.close();
    

    doch auch so scheint es nicht zu funktionieren.

    Wie geht es richtig?

    Hab die Suchfunktion schon bemüht, doch kann nicht wirklich was passendes finden.
    Über den Umweg einer temporären char-Variable, der Byte für Byte zugewiesen und ausgegeben wird läufts, aber ich hab noch die Hoffnung, daß es eleganter geht.

    Grüße!



  • Dazu musst du Binär I/O benutzen.

    int i=0xdeadbeaf;
    ofl.write(static_cast<char*>(&i),sizeof(i));
    

Anmelden zum Antworten