Ich nehme an, dass dies sehr einfach ist, aber ich kann es nicht zum Funktionieren bringen.Umwandlung eines std :: wstring in int
Ich versuche einfach, ein std :: wstring in ein int zu konvertieren.
Ich habe bisher zwei Methoden ausprobiert.
Die erste ist die "C" Verfahren mit "atoi" wie so zu verwenden:
int ConvertedInteger = atoi(OrigWString.c_str());
jedoch VC++ 2013 sagt mir:
Fehler, Argument vom Typ "const wchar_t *" ist inkompatibel mit dem Parameter des Typs "const char_t *"
Also das ist meine zweite Methode zu verwenden war, per Google-Suche:
std::wistringstream win(L"10");
int ConvertedInteger;
if (win >> ConvertedInteger && win.eof())
{
// The eof ensures all stream was processed and
// prevents acccepting "10abc" as valid ints.
}
jedoch VC++ 2013 sagt mir dies:
"Fehler: unvollständiger Typ nicht erlaubt."
Was mache ich hier falsch?
Gibt es eine bessere Möglichkeit, ein std :: wstring in int und zurück zu konvertieren?
Vielen Dank für Ihre Zeit.
Haben Sie '#include'? Dein Code mit dem Stringstream sollte funktionieren. –
Praetorian
Bitte versuchen Sie den String mit 'int ConvertedInteger = _wtoi (OrigWString);' ... –
zu konvertieren. Sie könnten immer einen 'std :: string' aus dem String konstruieren und' std :: stoi' verwenden. Wenn die Anzahl groß genug ist, kann es zu einer Speicherzuordnung kommen, aber ich bezweifle, dass es schlimmer ist als die Verwendung von Stringstreams. –