Datei lesen mit hexa

#786890
Lesenswert?

Hallo Leute,

ich habe eine folgende datei
0x322e3031

da sind die daten, was im datei.dat stehen

und mit folgende Code wollte ich die Daten lesen

______________________________________

#include<stdio.h>
#include<stdlib.h>

typedef unsigned char int8

int main (){
FILE *datain_fp;

int8 datain[100];
int i;
datain_fp = fopen("../datei.dat","r");
if(datain_fp !=0){
fscanf(datain_fp,"%x",datain);
prinft("datain 0: %x \t datain 1: %x \t  datain2: %x \t datain3: %x", 
datain[0],datain[1],datain[2],datain[3])
}
return 0;

}
_________________________________________

leider bekomme ich dieses Ergebnis

datain0 = 31      datain1 = 30     datain2 = 2e     datain3 = 32

Also genau andersrum mit was ich gedacht habe.
datain0 = 32      datain1 = 2e     datain2 = 30     datain3 = 31
ich bedanke mich wenn ihr mir weiter helfen könnt.

Gruß
Julietta
Gast #787009
Lesenswert?

Es ist nicht die feine Englische, der fscanf-Funktion an Stelle des
erwarteten int-Pointers einen int8-Pointer zu übergeben. Wenn die Zahl
unbedingt in einzelne Bytes zerstückelt werden muss, würde ich das
nach dem Einlesen tun.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren