char [] -> int || double umwandeln
-
Hey to all,
ich habe als Ergebnis einer Funktion einen char [] Hexadezimal der Form:
0x0012FD88
wie kann ich den jetz in einen double Wert umwandeln? Oder ein Int tuts auch !
Vielen Dank
-
-
Kurze Frage zu den Parametern:
long wert = strtol(mein hex Wert, ?????, ???????);
char* end; long val=strtol(str,&end,16);danke
-
MSDN schrieb:
long strtol( const char *nptr, char **endptr, int base );
nptr
Null-terminated string to convert
endptr
Pointer to character that stops scan
base
Number base to useGuck einfach in die MSDN, da ist sogar ein Beispiel drin.

-
Das habe ich mir schon angeschaut. Problem ist nur, dass ich mit dem Endpointer nichts anfangen kann.
Ganz konkret:
Ich habe einen char* Pixelbuffer [10] und der hat nach der Funktion den wert 0x0012FD88
Jetzt will ich aus diesem Hex Wert einen long/int oder so haben:
long wert = strtol ((const char*) Pixelbuffer, &end, 16);oder
long wert = strtod ( (const char*) Pixelbuffer, &end);wie definiere ich jetz das end?
char* end;
ist irgendwie ja noicht so bezeichnend!
-
Wenn du ordentlich mit dem char* arbeitest, steht da doch eher 0x0012FD88\0 drin, oder?
Dann muss es imho so sein:char* end = '\0';Denn die Null beendet den String.
-
Bei deinem Vorschlag mit
char* end = '\0';sagt er schon an der Stelle wo er das end initialisiert:
Schlechter Pointer!
und wie kan ich rauskriegen, ob mein char* [] nullterminiert ist?
-
Wie kommt die Zahl denn da rein?

-
end mußt du gar nicht definieren - dort trägt die Funktion die Position ein, wo sie nicht mehr weiterlesen konnte:
char text[]="0x0815"; char*end; long wert=strtol(text,&end,16);
-
da kommt aber immer nur 0 raus.
kann das sein?