String Wert übergeben? Kleine Frage für euch große Leute!



  • Hallo!
    Kurze Frage!
    Ich will eigentlich einen string senden, und der soll nicht nur "Hallo" oder irgenwas enthalten, sondern %d!
    also ich hab vorher ne variable definiert und will diese variable in den string einbauen, also ungefähr so:

    std::string str("Wert:%d",x);
    da kommt jedoch nur blödsinn raus!
    wie mach ich das?

    so mit str=("Wert:%d,Wert2:%d",x,y).... so was halt!

    gruß



  • Schlag auf www.cplusplus.com den std::stringstream nach.

    Die Anwendung ist ungefähr so:

    double Var = 3.45;
    std::stringstream Stream;
    Stream << "Hallo " << Var; 
    
    std::string Text = Stream.str();
    

    Die C-Formatflags sind aufgrund mangelnder Typsicherheit nicht stark verbreitet in C++ (abgesehen von Boost.Format, wo es aber besser gelöst wurde).



  • Hm..
    Geht irgendwie so nicht!

    COMPort.Open(5,19200);
    std::string str("hallo");
    COMPort.SendData(str.c_str(), str.length()+1);
    COMPort.Close();
    printf("\n%d;X;%d;%d;Y;%d;%d;Z;%d;%d\n",zeichen,xx,drehx,yy,drehy,zz,drehz);
    

    damit sende ich einfach nen string über COM raus!
    Keine große Sache!
    Ich will jetzt einfach das, was ich in printf habe raussenden!
    also ich will den Sendestring so ausschauen lassen wie das printf!
    wie kann ich das machen?
    bzw. wenn es anders als in form eines string gesendet wird, egal, hauptsache ich kanns so raussenden!



  • Wie gesagt. Nimm [url=http://www.boost.org/doc/libs/1_37_0/libs/format/index.html]boost::format.
    [/url]

    Damit kannst du dann auch so elegant arbeiten, wie du dir es vorstellst.

    Falls dir das zuviel Aufwand ist, kannst du sonst sprintf benutzen.



  • Hat geklappt!
    Danke!


Anmelden zum Antworten