Endurion
Sir Bugalot
Und das ist 99% die Schuld der seltsamen Zuweisung von PWSTR consumer = &consumer[0];
Visual Studio gibt da A) eine Warnung beim Kompilieren, weil consumer nicht initialisiert wird und B) beim Debuggen einen Runtime-Check-Error
Wenn ich dann nur ein Zeichen eingebe, stürzt das ganze ab.
Ernsthaft, was für einen Compiler hast du da? Du hast da einen Pointer, der auf sich selbst zeigt, und schreibst dann rein. Das hat alle möglichen Spätfolgen, wenn es nicht sofort kracht.
Versuch wirklich mal, da etwas reinzusetzen, worauf der Zeiger zeigen kann.
Nachdem ich die eine Zeile durch das ersetzt habe:
wchar_t hurz[256];
PWSTR consumer = &hurz[0];
läuft das einwandfrei, und ich bekomme auch nicht zweimal User2 ausgegeben.
Hier nochmal das komplette Teil, wie es bei mir sauber läuft:
Projekttyp Konsole, VS 2003
Visual Studio gibt da A) eine Warnung beim Kompilieren, weil consumer nicht initialisiert wird und B) beim Debuggen einen Runtime-Check-Error
Wenn ich dann nur ein Zeichen eingebe, stürzt das ganze ab.
Ernsthaft, was für einen Compiler hast du da? Du hast da einen Pointer, der auf sich selbst zeigt, und schreibst dann rein. Das hat alle möglichen Spätfolgen, wenn es nicht sofort kracht.
Versuch wirklich mal, da etwas reinzusetzen, worauf der Zeiger zeigen kann.
Nachdem ich die eine Zeile durch das ersetzt habe:
wchar_t hurz[256];
PWSTR consumer = &hurz[0];
läuft das einwandfrei, und ich bekomme auch nicht zweimal User2 ausgegeben.
Hier nochmal das komplette Teil, wie es bei mir sauber läuft:
Code:
#include "stdafx.h"
#include <tchar.h>
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
wchar_t* wszGroupID = L"User1";
PWSTR publisher = wszGroupID; // wszGroupID wurde anfangs and die Funktion übergeben
wprintf( L"%s\n", publisher); // Ausgabe = User1
//Benutzereingabe
wchar_t hurz[256];
PWSTR consumer = &hurz[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
return 0;
}
Projekttyp Konsole, VS 2003