ich habe versucht mir mal ne funktion zu schreiben die einen int in einen char umwandelt allerdings in der hexadezimal darstellung.
Code:
static char* itoch(int number) { char* string = (char*) malloc(3); string[4] = '\0'; int tnumber = number / 256; number = number - tnumber * 256; string[0] = tnumber + 48; tnumber = number / 16; number = number - tnumber * 16; if(tnumber<10) string[1] = tnumber + 48; else string[1] = tnumber + 97; if(number<10) string[2] = number + 48; else string[2] = number + 97; }
als ergebniss bekomme ich bei zum beispiel 511: 1pp obwohl ich eigentlich 1ff bekommen müsste. anmerkung: (ich brauche nur zahlen bis 511 deswegen enthällt das erste char nur 0 oder 1) -- "Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein www.blue-xenon.de.vu
danke schonmal so weit aber der string der am ende dabei rauskommt muss unbedinngt 3 stellen haben, weil ich den übers netzwerk verschicken will. @stephanw: welchen header muss ich für ostringstrem includen? @blubber2063: wenn ich das static weglasse bekomme ich die fehlermeldung: multiple definition of `itoch(int)' -- "Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein www.blue-xenon.de.vu
achso ich habe in dem thread weiter oben das return vergessen -- "Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein www.blue-xenon.de.vu