Binärdatei lesen und manipulieren



  • Ich versuche gerade das FAQ-Beispiel zu modifzieren:

    #include <fstream> 
    #include <iostream>
    using namespace std; 
    
    int main()
    {
    	fstream FileBin("image.bmp", ios::in|ios::out|ios::binary); 
    	ofstream OutFile("test.pak", ios::out | ios::binary); 
    
    	if (FileBin.is_open()) 
    	{ 
    		// 1. Dateigröße bestimmen. 
    		FileBin.seekg(0, ios::end); 
    		unsigned long FileSize = streamoff(FileBin.tellg()); 
    		FileBin.seekg(0, ios::beg); 
    
    		// 2. Puffer anlegen und Datei einlesen. 
    		char* pBuffer = new char[FileSize]; 
    		FileBin.read(pBuffer, FileSize); 
    
    		for(unsigned int i=0; i<FileSize; ++i)
    			OutFile.write(pBuffer[i], 1); // Fehler!
    
    		// Nachher wieder aufräumen. 
    		delete [] pBuffer; 
    	}
    }
    

    Bei der for-schleife kann man bei OutFile.write pBuffer nicht so übergeben, wie ich das möchte.Mein Ziel war es, erstmal zeichenweise die Datei in eine neue zu übertragen. Wie könnte ich das erreichen?



  • ofstream::write() will einen pointer auf die daten also

    OutFile.write(&pBuffer[i], 1); // kein Fehler!
    

    Kurt


Anmelden zum Antworten