में कनवर्ट करना मुझे लगता है कि यह बहुत आसान है लेकिन मैं इसे काम नहीं कर सकता।एक std :: wstring को int
मैं बस एक intd :: wstring को int में बदलने की कोशिश कर रहा हूं।
मैंने अब तक दो विधियों का प्रयास किया है।
int ConvertedInteger = atoi(OrigWString.c_str());
हालांकि, कुलपति ++ 2013 मुझसे कहता है:
पहले "atoi" के साथ "सी" विधि का उपयोग करें ताकि तरह है
त्रुटि, प्रकार के तर्क "स्थिरांक wchar_t *" प्रकार के पैरामीटर के साथ "स्थिरांक char_t *"
असंगत है तो मेरी दूसरी विधि गूगल खोज के अनुसार इस का उपयोग करने के, था:
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.
}
हालांकि कुलपति ++ 2013 मुझसे कहता है यह:
"त्रुटि: अधूरा प्रकार की अनुमति नहीं है।"
मैं यहाँ क्या गलत कर रहा हूं?
क्या std :: wstring को int और back में परिवर्तित करने का कोई बेहतर तरीका है?
आपके समय के लिए धन्यवाद।
क्या आपने 'शामिल किया था? स्ट्रिंगस्ट्रीम के साथ आपका कोड काम करना चाहिए। –
Praetorian
कृपया 'int ConvertedInteger = _wtoi (OrigWString) का उपयोग करके स्ट्रिंग को कन्वर्ट करने का प्रयास करें; ' –
आप स्ट्रिंग से हमेशा' std :: string' बना सकते हैं और उस पर 'std :: stoi' का उपयोग कर सकते हैं। यदि संख्या काफी बड़ी है तो आपको स्मृति आवंटन हो सकता है, लेकिन मुझे संदेह है कि यह स्ट्रिंगस्ट्रीम का उपयोग करने से भी बदतर है। –