int to char array (c++)

Hey, ich habe ein kleines Problem mit der Umwandlung von einem int in einen char array, im array steht nach der umwandlung immer nur müll, und ich sehe den Fehler in meinem Code nicht, weil char array to int funktioniert problemlos ....

hier mein code:

Code:
int i;
char buffer[254];

int_to_char(i, *buffer);

cout<<"buffer: "<<buffer<<endl;

int int_to_char(int i, char &in)
{
    in = (char)i;
}

Ausgabe(Bsp): buffer: °#

In der Ausgabe stehen immer unterschiedliche sachen i welche Symbole einfach, oder nichts... darum gehe ich davon aus meine Umwandlung hat nicht funktioniert.
Hoffe auf schnelle Hilfe ^^
 
Was soll diese Funktion denn deiner Meinung nach machen?

Im Moment wandelt sie einen Integer-Wert in seinen repräsentativen Character um. Und da du einen Pointer nutzt und diesen auch ausgibst, und er nicht null-terminiert ist, wird der dein aktueller Speicher ausgegeben (einfach ausgedrückt)

Ich vermute aber, dass du eher sowas willst:

Integer 12345 wird zu Zeichenkette "12345" der Länge 5.
 
ganz genau das will ich.
was mich eben wundert ist, das es andersrum funktioniert also

Code:
int char_to_int(int i, char &in)
{
      i = (int)in;
}
das funktioniert ..... aber andersrum nicht. und wenn das so nicht geht wie dann
 
bereits geschehen und letzere wird nich von code::blocks unterstützt, ich wollte eig eine lösung wie meine funktion funktioniert ....
 
Dann solltest du dir Gedanken machen, warum das so nicht funktioniert (grob hab ich den Grund schon genannt) und wie du es dann umsetzen solltest. Im Dezimalsystem wird jede Zehnerstelle durch eine Zahl dargestellt, also müsstest du anhand der jeweiligen Zehnerstelle mit dem Modulo-Operator die Ziffer herausrechnen und den String, bzw. dein Charakterfeld, selbst zusammenbauen.

Bspw. wäre 123 eine Zahl, die sich aus 1x100 + 2x10 + 3x1 zusammensetzt. Der String resultiert also aus dem Aneinanderfügen von "1", "2" und "3", nachdem du der Reihe nach die Zehnerpotenzen auseinander genommen hast.

PS: Ich bezweifel irgendwie, dass deine Funktion char_to_int wirklich so funktionioniert, wie du es willst.
 
Code:
int char_to_int(int i, char &in)
{
      i = (int)in;
}
Das diese Funktion sinnvoll ist, bezweifle ich. Du weist nämlich einer temporären Variable einen Wert zu, der bei der unteren Mengenklammer zusammen mit dem Stack verloren geht.
Und außerdem würde ich gerne wissen, wie du das Zeug verwendest. Wenn du da auch wieder der Referenz einen String zuweist würde ich dir empfehlen, den Unterschied zwischen Zeigern und Referenzen noch einmal nachzuschlagen. Mir scheint, dass es da an grundsätzlichem fehlt.

mfg benediktibk
 
Zurück
Oben