cast funktion, nicht perfekt
-
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?
-
vielleicht solltest du dich in eine Ecke setzen und nachdenken was du überhaupt willst?
-
habe ich gesagt: auf wstring und wcin verzichten und eine funktion haben die einen wchar_t* zurückgibt, welcher vorher ein char* war.
-
_L(cstrBla)
-
Mis2com schrieb:
_L(cstrBla)
char *y = "blub"; wchar_t *x = _L(y);
error C2065: '_L' : undeclared identifier
-
Hi,
L, oder _T/_TEXT() aber nicht _L!
EDIT: Aber hier bringts nix, das geht nur um Konstanten zu Unicode zu compilieren! Zur Compilezeit! Hier braucht man eine Konvertierungsfunktion...
ChrisM (von Mis2com genötigt, hier zu antworten)
-
ja aber wie schreib ich so eine funktion? ich hab ja eine geschrieben doch ich möchte doch nur dieses new weg bekommen
-
*** schrieb:
ich möchte doch nur dieses new weg bekommen
Mis2com schrieb:
Indem du voraussetzt, dass der Benutzer den Speicher schon allokiert hat.
-
eben das möchte ich ja nicht... es soll nichts mit new allokiert werden..
-
Das new geht da nicht weg, siehst du es nicht ein?
Überlege logisch:
Du musst Speicher allokieren.Wie geht das dynamisch? Nur mit new und new[]
Wo machst du es?
Innerhalb der Funktion.
Wo willst du es haben?
Nicht innerhalb der Funktion.Fazit:
Der Benutzer muss es machen.Wenn du das net einsiehst, dann kann ich dir auch net helfen.
-
*** schrieb:
eben das möchte ich ja nicht... es soll nichts mit new allokiert werden..
verlangt ja auch niemand:
wchar_t buffer[100]; deine_funktion(buffer, "hallo");
Denk mal logisch: jemand muss speicher allokieren, anders geht es nicht.
-
und per return gehts einfach nicht?
-
*** schrieb:
und per return gehts einfach nicht?
sicher. einfach dynamisch allokierten speicher returnen
oder statischen.
oder eine klasse schreiben, die den string kopiert.
-
Die Größe steht ja erst zur Laufzeit fest, du kannst zwar etwas zurückgeben, aber dafür muss dasjenige Speicher haben, d.h. also auch mit new allokiert sein.