Char-Array mit Hexadezimalen Codes in Char-Array mit Bytes umwandeln



  • Hallo zusammen!

    Ich habe folgendes Problem:

    Ich lese aus einer Datei den Inhalt aus. Dieser sieht ungefähr so aus: "\xAB\xCD\xDE\xAD\xBE\xEF\x90\x90". Jetzt möchte ich dieses char-array in die Bytefolge konvertieren, die sie repräsentiert.

    Nach kurzem Überlegen dachte ich, dass sscanf() für mich wie geschaffen ist.
    Mit einem einzigen 4 Byte String klappt das auch prima - Beispiel:

    char buf[] = "\\x60";
    unsigned char ausgabe; 
    sscanf( (char*)buf, "\\x%02x", &ausgabe);
    printf("%c", ausgabe);
    

    Meine Idee dann einfach durch das Array durchzuiterieren scheitert aber permanent 😕

    int i;
    unsigned char ausgabe;
    char buf[] = "\\x60\\x61\\x62\\x63\\x64\\x65";
    for( i = 0; i < sizeof(buf) ; ++i) {
        sscanf( &buf[i], "\\x%02x", ausgabe);
        printf("%c", ausgabe);
    }
    printf("\n");
    

    Hat vielleicht jemand einen Hinweis was ich falsch mache?
    Anscheinend sage ich sscanf() nicht richtig welche Bytes er benutzen soll.

    Gruß

    H.



  • problem gelöst...

    das letzte Argument muss natürlich ein int sein ( int ausgabe; &ausgabe).


Anmelden zum Antworten