cast funktion, nicht perfekt
-
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.
-
Ihr müsst mal die richtigen Fragen stellen. Sowas, wie "wie soll das denn gehen" bringt doch nichts. Genau das weiß er ja auch nicht, sonst würde er nicht fragen. Fragt ihn doch lieber mal, weshalb das new weg soll.
Vielleicht geht es ihm ja darum, dass er nicht will, das der Benutzer anschließend eine delete aufrufen muss, etc. Dann hättet ihr zu Smart-Pointern raten können (std::auto_ptr).
Vielleicht ist das Problem aber auch ein ganz anderes. Das findet man aber nur heraus, wenn man nachfragt.