BinärFiles Zeichenweise einlesen



  • Hallo,

    ich will ein BinärFile byteweise einlesen.
    Zum Testen hab ich mir das geschrieben:

    int main()
    {  
      ifstream fin("test.exe", ios::binary);  
      unsigned char c;  
    
      while (!fin.eof())  
      {    
        fin >> c;    
        cout << c;  
      }  
    
      return 0;
    }
    

    Wird auch schön compiliert. Wenn ichs laufen lass, dann piepst und pfeift aber der Rechner nur so...

    Wenn ich stattdessen schreib:

    int main()
    {  
      ifstream fin("test.exe", ios::binary);  
      ofstream fout("test.test", ios::binary);  
      unsigned char c;  
    
      while (!fin.eof())  
      {    
        fin >> c;    
        fout << c;  
      }  
    
      return 0;
    }
    

    Dann pfeifts zwar nicht, die test.test ist aber kleiner als test.exe...

    Wie kann ich das schreiben, dass es funktioniert?

    Ich verwend den gnu-Compiler.

    Danke und mfg
    rodo



  • hi

    probiert es mal mit "fin.read()". Damit kannst du die Datei Byte weise einlesen und mit "fin.write()"(nicht sicher) kann du das in eine Datei schreiben. Ansonsten schau mal in die MSDN rein.

    Gruß
    de_Bert



  • Wenn Du uns sagst wieso Du die Datei binär lesen willst können wir Dir vllt. eine elegante Variante zeigen.



  • hi

    was ist den an der Vorgehensweise nicht elegant???

    Gruß
    de_Bert



  • Hallo,

    danke für die Antorten.
    Ich machs jetzt mit fin.get(c), bzw, fin.put(c), das funktioniert.

    Ich brauch das ganze um Dateien zu komprimieren.

    mfg
    rodo


Anmelden zum Antworten