zahlen in wchar_t



  • hi leute,

    ich habe eine funktion.

    void print_text(const wchar_t* text, position<2d> pos)
    {
        // methode zum text ausgeben
    }
    

    nun will ich aber auch zahlen übergeben, lassen. die methode die dann aber den text entgegennimmt erwartet nur const wchar_t*. Das ist eben der mist mit fertigen engines :-P.
    Wie kann ich also int bzw float in wchar_t* konvertieren?
    Ich habes schon mit basic_sirngstream probiert. mit geringem erfolg.

    danke für alle hilfe

    mfg freaker



  • std::wstringstream wss;
    wss << 3.1415;
    std::wcout << wss.str() << std::endl;
    

    Klappt!



  • Siehe FAQ. Es geht sehrwohl mit stringstreams.

    MfG SideWinder



  • @David_pb:
    ich habe deine idee mal probiert. funktioniert aber auch nicht. ich kriege immernoch als fehlermeldgun dass printtext() das erste argument nicht konvertieren kann. hier mein code:

    inline void print_text(wchar_t* text, rect<int> area)
    {
    	device->getGUIEnvironment()->addStaticText(text, area);
    }
    
    std::wstringstream buffer;
    buffer << 3.1415;
    print_text(buffer.str(), rect<int>(10, 10, 300, 100));
    


  • Weil du ein const wchar_t* zurückbekommst. So wie du's im ersten Post auch als Parameter hattest.



  • ähh, du bist lustig, das ist die IrrlichtEngine, oder?
    Die hat doch schon Konvertierungsmethoden, benutze irr::core::stringw.

    Der Klasse kannst du im Konstruktor int, float, char*, usw. übergeben und bekommst mit der Methode c_str() einen const wchar_t*.

    Gruß
    Don06


Log in to reply