Zakładam, że jest to bardzo proste, ale nie mogę go uruchomić.Konwersja std :: wstring na int
Po prostu próbuję przekonwertować std :: wstring na int.
Próbowałem do tej pory dwóch metod.
Pierwszym jest użycie "C" metody z "atoi" tak:
int ConvertedInteger = atoi(OrigWString.c_str());
Jednak VC++ 2013 mówi mi:
błąd argument typu "const wchar_t *" jest incompatable z parametrem typu "const char_t *"
Więc moja druga metoda była to wykorzystać, za Wyszukiwarka Google:
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.
}
Jednak VC++ 2013 mówi mi tak:
"Błąd: niekompletne typu niedozwolone."
Co ja tu robię źle?
Czy istnieje lepszy sposób konwersji std :: wstring na int iz powrotem?
Dziękuję za poświęcony czas.
Czy "#include"? Twój kod z stringstreamem powinien działać. –
Praetorian
Proszę spróbuj przekonwertować ciąg za pomocą 'int ConvertedInteger = _wtoi (OrigWString);' ... –
Zawsze możesz skonstruować 'std :: string' z łańcucha i użyć' std :: stoi' na tym. Możesz przydzielić alokację pamięci, jeśli ta liczba jest wystarczająco duża, ale wątpię, by była ona gorsza niż używanie strumienia stringów. –