Hilfe: long to char* ???
-
Hallo!
Ich hab ein Problem bei dem ich einfach nicht weiter komme.
Ich hab in der Variable long time_left eine 2-stellige Zahl
also maximal 99. Diese muss ich an die Funktion:void TextBox::addMessage(char *new_text, Value3f new_pos, Value3f new_color, float new_endtime) {weitergeben, wäre also der char *new_text.
egal wie ich caste, es geht einfach nicht.
Als Beispiel folgender maßen:
long time_left = (starttime.tv_sec - (start.tv_sec - stoptime.tv_sec)); char test = (char) time_left; std::cout<<test<<std::endl; textBox->addMessage(&test, Value3f(0.4, 0.85, 0), Value3f(0.1, 0.1, 0.7könnt ihr mir sagen was ich falsch machen?
vielen dank,
icima
-
icima schrieb:
könnt ihr mir sagen was ich falsch machen?
vielen dank,
icima
alles
-
Willst du den
longzu einem String umwandeln? In diesem Fall kannst du nachstd::stringstreamsuchen, in letzter Zeit gab es einige Threads dazu.
-
Nexus schrieb:
Willst du den
longzu einem String umwandeln? In diesem Fall kannst du nachstd::stringstreamsuchen, in letzter Zeit gab es einige Threads dazu.Es gibt sogar einen FAQ Beitrag dazu:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39488.html@icima,
Alles was du machst, ist den Wert in der long-Variable in eine char-Variable zu speichern. Also aus der Zahl wird nicht ein String, sondern bleibt ein Wert, einfach diesmal in einer char-Variable gespeichert. Eine char-Variable ist ja nichts anderes, als ein einzelnes Zeichen und ein Zeichen ist nichts anderes als irgendein ein Wert.
Zudem nehme ich an, dass addMessage ein null-terminierter String erwartet. Dann würde es bei dir ganz heftig krachen, da du undefiniertes Verhalten auslöst.Grüssli