cast funktion, nicht perfekt
-
Hi,
meine cast-funktion um einen std::string in einen wchar_t zu casten ist noch net perfekt...
wchar_t convert (const std::string &message) { wchar_t *temp = new wchar_t[message.size()]; std::use_facet<std::ctype<wchar_t> > (std::cout.getloc()).widen(message.c_str(), message.c_str()+6, temp); return (*temp); }
wie bekomm ich das new weg?
-
Indem du voraussetzt, dass der Benutzer den Speicher schon allokiert hat.
-
Ich wollte auch schon immer einen string in ein wchar_t cast. Hä?
-
boah geil, das möchte ich ja eben nicht!
-
std::wstring benutzen?
-
*** schrieb:
boah geil, das möchte ich ja eben nicht!
irgendwie kam das wchar_t * convert nicht durch.
-
Shlo schrieb:
std::wstring benutzen?
funzt nicht mit std::cin
-
dafür gibt es std::wcin
-
ich will aber eine funktion haben...
-
Wozu?
btw.
std::wcin.operator<< kann irgendwie auch als Funktion gesehen werden (auch wenn es natürlich ein Operator ist, aber für deinen Fall kannst du es annehmen, um zufrieden zu sein :))
-
template<class Stream, typename Object> void output(Stream& stream, Object const& object) { stream<<object; }
-
Ich dachte typename und class ist innerhalb von Templateargumenten gleich, wieso schreibst du dann beim einen class und beim anderen typename?
MfG MAV
-
Mis2com schrieb:
Ich dachte typename und class ist innerhalb von Templateargumenten gleich, wieso schreibst du dann beim einen class und beim anderen typename?
Wahrscheinlich um anzudeuten, dass es sich bei Stream zwangsläufig um ein UDT handeln muss. Object hingegen kann auch ein simpler Typ wie int oder double sein.
-
ich benutze keine streams...
-
Und warum hast du dann vorhin als Grund dafür, dass du das nicht als wstring lässt, gesagt, dass es mit cin nicht klappt?
Zu deiner Information, cin ist auch ein Stream, besser eine Streamklasse.MfG MAV
-
weil ich eigentlich textinput anders mache als mit wcin? nämlich mit getch dank deinem noob tutorial auf ZFX und ich für andere sachen auch wchar_t brauche?
drum will ich ne ganz einfache wchar_t funktion die meinen std::string oder char konvertiert.
-
*push*
wie kann ich das new entfernen?
-
Die Eingabe mit getch() für einfache Zeichen ist innerhalb der Konsole nun einmal eine gute und einfache Lösung, für den Chat hat es gereicht.
Aber ich stimme dir zu, das Tutorial hat wirklich viele Fehler.
Neben Design-Ekligkeiten unreichend viele Rechtschreibfehler.PS: Du hättest mein ,,noob Tutorial'' ja nicht lesen brauchen.
-
ach kommt schon leutz.... *push*
-
irgendwie hab ich den Eindruck, du willst uns verarschen. Dir ist doch bereits eine Möglichkeit genannt worden, benutze in deiner convert Funktion std::wstring oder wo ist wieder das Problem?
-
vieleicht weil ich nebenbei noch andere sachen habe außer wstring? und man einen string ja super leicht nach wstring konvertieren kann, gell?