Wie am besten Typen verbinden`?



  • Hallo!

    Problem:

    void print (string b)
    {
    	cout << b << endl;
    }
    
    int main()
    {
    	print ( "hello " + 2 + " u");
    	return 0;
    }
    

    error C2110: '+': Zwei Zeiger können nicht addiert werden

    Gibt es dafür eine geschickte Lösungsmöglichkeit?



  • Mit Klebstoff?
    Guck doch in der FAQ nach zum Thema Strings, und Umwandlung von Integers in Strings.



  • Was du hier versuchst ist, auf die Adresse des Stringliterals "hello " 2 draufzuaddieren (wie hustbaer gesagt hat, wenn du aus 2 "2" machen willst, musst du konvertieren, siehe FAQ), und im Anschluss auf diesen Zeiger den Zeiger auf "u " zu addieren. Ersteres wäre erlaubt, aber absolut nicht was du willst (probier es ruhig mal aus), Letzteres darf man nicht. Für diesen Fall

    print ( "hello " + " u");
    

    könntest du dir übrigens so behelfen:

    print ( string("hello ") + " u");
    


  • Gibt es dafür eine geschickte Lösungsmöglichkeit?

    Ja, std::stringstream.

    std::stringstream stream;
    stream <<  "hallo" << ' ' << 5 << " welt";
    std::cout << stream.str() std::endl;
    


  • 👍


Anmelden zum Antworten