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).