Typumwandlung char to int

Thurstan

Mitglied
Hallo leute ich bins wieder :suspekt:


Mit diesem Schnipsel lese ich eine Textdatei aus, die ungefähr so aussieht:
EXTRACTC d:\test leer\01\01.txt d:\test leer\02\01.txt d:\test leer\03\01.txt 3

jetzt schreibe ich die 3 Pfade in ein Array und lese die Ziffer am Ende der Zeile aus...
C++:
int maxSize = sizeof(paths)/sizeof(*paths);
fgets(paths, maxSize, datei);

const char delim = ':';
for (char* start, *end = strchr(paths, delim); start = end;) {
        if (end = strchr(start + 1, delim)) {
            printf("%.*s\n", end - start, start - 1);
            strncpy (pfad[x], start - 1, end - start);
            x++;
        }
        else {
            puts(start - 1);
            strcpy(pfad[x], start - 1);
            temp1 = strpbrk (pfad[x], search2);
            strncpy (zahl, temp1 + 5, 1);
            x++;
        }
}

Jetzt mein Problem die Ziffer wird mir ebenfalls als char geliefert und wandle ich sie um mit
C++:
int test1 = (int)zahl;
nimmt sie einen anderen Wert an....die Ausgabe sieht dann so aus:


zahl : 3
test1 : 9459672


was mache ich falsch bzw. wie mache ich es richtig ?
 
Hi.

Einen String kannst du nicht einfach so in einen Integer casten.

C:
int z;
const char*  strzahl = "34";

if (sscanf(strzahl, "%d", &z) == 1)  {
  /* Konvertierung hat geklappt */
 ...
} else {
  /* Fehler... */
}
Gruß
 
Zurück