Struct - binär schreiben mit ofstream/write



  • #include <iostream>
    #include <fstream>
    
    using namespace std;
    typedef unsigned short int word;
    typedef unsigned long int dword;
    
    int main()
    {
    	char file_name[]="a.bmp";
    
    	struct fileheader
    	{
    		word	bfType;
    		word	bfSize;
    		dword	bfReserved;
    		dword	bfOffBits;
    	} fheader;
    
    		fheader.bfType		= 19778;
    		fheader.bfSize		= 0;
    		fheader.bfReserved	= 0;
    		fheader.bfOffBits	= (sizeof(iheader)+sizeof(fheader))*8+1;
    
    	ofstream bmp_file;
    	bmp_file.open(file_name, ios_base::out | ios_base::binary);
    
    		if(bmp_file.good())	cout << "Datei erstellt!" << endl;
    
    		bmp_file.write(reinterpret_cast<char *>(&fheader), sizeof(fheader));
    
    	return 0;
    }
    

    Ich versuche gerade mit C++ eine Bitmap-Datei zu erstellen:

    Mein Problem dabei ist dass er irgendwie an die 2-Byte Variablen nochmal 2-Byte dazuhängt die nur unsinn enthalten.

    Also z.B.: FFFF 0200 | FFFF 0340 | FFFF FFFF | FFFF FFFF
    (FFFF ist das gewollte)

    erkennt der nicht die Größe der Varibalen??

    Achja und wegen WORD und DWORD: passt dass mit short int & long int???



  • Schreib mal die Werte einzeln nacheinander rein, ich tippe mal auf alignment.


Anmelden zum Antworten