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


Anmelden zum Antworten