Benutzereingabe in PWSTR speichern?

So langsam bin ich am verzweifeln, denn wenn ich WSTR wszGroupID3[200]; eintrage, dann bekomme ich beim kompilieren "WSTR: nichtdeklarierter Bezeichner".
Wie schon eingangs erwähnt habe ich nicht viele Kenntnisse in C++ und versteh echt nur noch Bahnhof. Das Programmstück sollte jetzt schon vor Tagen fertig sein und ich komm nicht von der Stelle :(
Gibts vielleicht irgendwo ne gute Dokumentation darüber was überhaupt WSTR und PWSTR genau sind und wie sie funktionieren?
 
So, als Nachtrag wie der richtige Code gelautet hätte ;-]

Code:
PWSTR input;
cout<<"Usernamen eingeben:\n";
wscanf( L"%ls", input);
PWSTR wszGroupID2 = input;
wprintf( L"%s\n", wszGroupID2);

...manchmal ist es einfacher als man denkt, denn wscanf und wprintf waren die Lösung :)

Ich danke trotzdem für die nette Unterstützung!
 
moin


Warum liesst du nciht gleich in wszGroupID2 ein?
Ist doch Speicherverschwendung wie du es machst.


mfg
umbrasaxum
 
Initialisierst du den Pointer irgendwo auf einen gültigen Bereich? Wenn nicht, dann hast du wahnsinnig viel Glück und das Ding explodiert dir dann, wenn du es am wenigsten erwartest. Ändere es zumindest so ab:

Code:
WCHAR   wInput[200];
PWSTR input = &wInput;
cout<<"Usernamen eingeben:\n";
wscanf( L"%ls", input);
PWSTR wszGroupID2 = input;
wprintf( L"%s\n", wszGroupID2);
 
Also,

Speicher wird nun keiner mehr verschwendet (danke umbrasaxum :))

@Endurion: wenn ich das so eingebe wie du meinst kommt mal wieder:
error C2440: 'Initialisierung': 'WCHAR (*)[200]' kann nicht in 'PWSTR' konvertiert werden
Allerdings hast du schon Recht mit dem was du sagst, denn ich bekomme in meiner Fassung auch die Warnung:
warning C4700: Lokale Variable 'wszGroupID2' wurde ohne Initialisierung verwendet
Haste noch ne andere Lösung parat?

Wie immer vielen Dank für die schnellen kompetenten Antworten :p
 
Zuletzt bearbeitet:
Ha, mir kam die Zeile schon komisch vor. Ändere die in:

PWSTR input = &wInput[0];

Dann ist der Fehler weg, die Warnung weg, einfach alles weg :)
 
So, da muss ich mich jetzt doch nochmal melden:

die Konsoleneingabe hat ja jetzt einwandfrei funktioniert mit wscanf, aber nach einer Erweiterung meines Programms passiert folgendes

PWSTR publisher = wszGroupID; // wszGroupID wurde anfangs and die Funktion übergeben
wprintf( L"%s\n", publisher); // Ausgabe = User1
//Benutzereingabe
PWSTR consumer = &consumer[0];
cout<<"Usernamen eingeben:\n"; // Eingabe = User2
wscanf( L"%ls", consumer);
wprintf( L"%s\n", consumer); // Ausgabe = User2
wprintf( L"%s\n", publisher); // Ausgabe = User2


Warum in Gottes Namen steht jetzt in der Variable publisher User2 :mad:
 
Zuletzt bearbeitet:
Äh, die Zeile PWSTR consumer = &consumer[0]; lässt sich kompilieren
Da zeigt der Zeiger ja auf sich selbst. Sollte doch eher sowas sein:

WSTR wConsumer[256];
PWSTR consumer = &wConsumer[0];
 
Ja, ich weiß, das hattest du weiter oben ja schon einmal geschrieben, aber es funktioniert auch so.

Jedoch: darum geht es ja nicht. Das schlimme ist, daß in publisher was drinsteht, was da nicht reingehört!
 
Zurück