Bytes lesen, Steuerzeichen



  • Hallo liebe Community!
    Ich möchte aus einer Datei byteweise lesen, schreibe die Daten dann in ein Array aus einzelnen Bytes, sodass ich diese anschließend geordnet über eine serielle Schnitstelle senden kann.

    Mein Problem dabei ist das Steuerzeichen "\f" also 0x0C (Hex) 12 (Dec). Dieser steht zwar in der Datei, wird anscheinend aber als Steuerzeichen "Seitenvorschub" erkannt und nicht ins Array übernommen.

    Ich verwende QT.

    std::ifstream FileTest(Dateipfad.toStdString());
        if(FileTest){
    
        std::ifstream HEX_DATA_stream;
        HEX_DATA_stream.open(Dateipfad.toStdString(),std::ios_base::binary);
    
        while (!HEX_DATA_stream.eof())
        {
          BYTE c;
          HEX_DATA_stream >> c;
          HEX_FILE_DATA.append((BYTE)c);
        }
    

    Ich bin leider kein Informatiker und aktuell mit meinem Latein am Ende.
    Wäre super nett wenn mir jemand von euch dabei helfen könnte!
    Gruß 🙂



  • Es gibt keinen Datentyp BYTE in C++. Die kleineste Einheit ist char. Beim Einlesen dürfte hier wohl white spase übersrungen werden. Außerdem ist deine EOF Behandlung falsch. Versuche es mit

    char c;
      while (HEX_DATA_strem.get(c))  {
    


  • ÄÄÄHm wart mal ? ...
    Doch!

    lösung ist:

    beim erstellen des zu lesenden Dokuments "\" vor das Steuerzeichen einfügen. Dann klappts (siehe escapesequenz)


Anmelden zum Antworten