Problem mit Einlesen und Verarbeiten einer Datei
-
Hallo,
ich will mit den Werten aus einer eingelesenen Datei verschiedene Operationen durchführen.
Zuerst mach ich:for (i=0; i<ManuInfSize+4; i++) { ManuInfo [i] = getc(werte); }
Mit den Werten aus ManuInfo führe ich dann eine CRC32 Berechnung durch. Dies funktioniert auch alles - soweit so gut!
Nun will ich aber eine Prüfsumme durch Addition machen, aber wortweise, d.h. ich muss aus 2 Zeichen eine Zahl machen (z.B. aus 43 und 1A wird nun 431A).
Und hier ist mein Problem.
Hab dazu mir folgenden Code überlegt:for(int xy=0;xy<ManuInfSize+4;xy++) { helpString[xy][0]=ManuInfo[xy]; //das zeichen im Array helpString speichern helpString[xy][1]='\0'; // String abschließen }
Nun kommt aber bei
den belegten ManuInfo[5]=20 und [6]=61 Werten folgendes:printf("%lx\n",helpString[5][0]); //Ergebnis: 20 printf("%lx\n",helpString[5]); //Ergebnis: 404810 strcat(helpString[5],helpString[6]); //Ergebnis: 0 int help; help=atoi(helpString[5]); printf("%lx\n",help); //Ergebnis: 0 printf("%02lX\n",helpString[5][1]); //Ergebnis 61
Brauchen würde ich aber wie gesagt: 2061 (mit dem muss ich dann eben weiteraddieren).
HILFE!!!!
-
Warum machst du es nicht einfach so:
int main(int argc, char **argv) { int help; int zahl = 0x20; int zahl2 = 0x61; help = zahl2 + (zahl << 8); printf("%X", help); return 0; }
Getestet mit http://www.delorie.com/djgpp/compile/
-
Super, danke für den Tipp!!!!!
Auf die einfachen Sachen kommt man nicht!
Bei FF und FF kommt als Ergebnis FEFE, wieso denn das ??
mfg
Marcus