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.7
    

    kö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 long zu einem String umwandeln? In diesem Fall kannst du nach std::stringstream suchen, in letzter Zeit gab es einige Threads dazu.


  • Administrator

    Nexus schrieb:

    Willst du den long zu einem String umwandeln? In diesem Fall kannst du nach std::stringstream suchen, 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


Anmelden zum Antworten