string als Rückgabewert
-
Hi, ich hab eine Funktion die einen string zurückgeben soll.
Die Funktion einfach
string Funktion(..) { return (string) }funktioniert nicht. Bekomme da die Fehlermeldung : conversion from 'void' to non-scalar type 'std::string' requested.
Weiss jemand wie man das löst ?
-
Ist das jetzt pseudo code?
return (string)muss natuerlich wirklich einen String zurueckliefern:
return string("bla")Ansonsten zeig mal mehr code.
-
Also normalerweise müsste das funktionieren ?
Zum Code : Ich will hier den Platzhalter (PH_23) berechnen.
string AbstandFunc_Name(string Name) { string PH_23 = " "; string PH_Name; int x; PH_Name = PH_23; int i = Name.length(); x=24-i; return (PH_Name.resize(x)); }EDIT:
Ahh ok thx,string AbstandFunc_Name(string Name) { string PH_23 = " "; string PH_Name; int x; PH_Name = PH_23; int i = Name.length(); x=24-i; PH_Name.resize(x); return (PH_Name); }so gehts

-
das geht auch etwas kürzer

std::string platzhalter(std::sting const & other) { size_t len = std::max(24-other.length(), 0) return std::string(len, ' '); }
-
Ja ich bin noch nicht so der Checker und schreibe teils sehr eigenartige Konstruktionen, das geb ich schon zu :D. Aber ich bin halt froh wenn es erstmal funktioniert, optimieren tu ich erst später :).
Ich bekomm bei dir nen Fehler : no matching function for call to 'max(unsigned int,int)'.
-
<algorithm>
und keinen veralteten Compiler oder ein M$-Produkt nutzen...
-
Hmmm ich benutze den Compiler von Dev-cpp ,soweit ich weiss ist der weder veraltet noch schlecht, oder bin ich falsch informiert ?
Funktioniert leider auch nicht wenn ich <algorithm> includiere.
-
Was kommt denn für eine Fehlermeldung? (ich hoffe, mal du hast den Schreibfehler std::string beseitigt.)
P.S.
Die Dev-C++ IDE ist veraltet (s. http://de.wikipedia.org/wiki/DevCpp), benutzt lieber Code::Blocks (s. http://de.wikipedia.org/wiki/Code::Blocks...
-
ja klar den Scheibfehler hab ich raus gemacht, die Fehlermeldung ist genaugleich wie oben. Naja ok dann werd ich mal den Code::blocks testen
-
OK, dachte es wäre eine andere Fehlermeldung...
Probier mal:
size_t len = std::max(24-other.length(), 0u) // u bedeutet unsignedP.S. Das Problem beim Dev-C++ ist nicht die IDE, sondern der veraltete Compiler (gcc 2.x), der dort verwendet wird.
Somit ist es einfacher, die komplette IDE (+ Compiler) auszutauschen...