fstream Binary out Null fehlt



  • Hallo erstmal,
    habe ein problem mit den Code er übersetzt wie gewohnt die Datei in Hex-Zeichen,
    und mach alle 30 Hex-Zeichen einen zeilenumbruch .
    nur leider klaut er mir an den verschiedensten stellen eine Null zb. 1c0020 macht er 1c020 leider habe ich keine Ahnung warum dies so ist

    gruß Kronos.

    #include <fstream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        int zehler = 0;
        fstream in("in.tmp", ios::in | ios::binary);
        ofstream out("out.tmp");
    
        if (!in.is_open() || !out.is_open()) return 1;
    
        out << hex;
    
        while (!in.eof()) {
            if ( zehler == 0) {
              out << in.get();
              zehler = zehler + 1;
              }
    
            else if ( zehler == 30) {
              out << '\n' << hex;
              zehler = 0;
              }
            else
              {
               out << in.get();
               zehler = zehler + 1;
        }    
        return 0;
    }
    


  • Das Problem hier ist das immer 8Bits eingelesen werden und ausgegeben.

    Im falle vom wert 0 ist die ausgabe dann auch 0 (eine)

    Lösung:

    out << hex << setw(2) << setfill('0') << in.get();
    

    BR
    Vinzenz


Anmelden zum Antworten