मैं कोड था:std :: wstring को प्रारंभ और मुद्रित करने के लिए कैसे करें?
std::string st = "SomeText";
...
std::cout << st;
और वह ठीक से काम किया। लेकिन अब मेरी टीम wstring
पर जाना चाहता है। तो मैं करने की कोशिश की:
std::wstring st = "SomeText";
...
std::cout << st;
लेकिन यह मुझे एक संकलन त्रुटि दिया:
Error 1 error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(const std::basic_string<_Elem,_Traits,_Ax> &)' : cannot convert parameter 1 from 'const char [8]' to 'const std::basic_string<_Elem,_Traits,_Ax> &' D:...\TestModule1.cpp 28 1 TestModule1
वेब मैंने पढ़ा है कि मैं के रूप में यह परिभाषित करना चाहिए खोज के बाद:
std::wstring st = L"SomeText"; // Notice the "L"
...
std::cout << st;
इस संकलित लेकिन "SomeText"
के बजाय "0000000000"
प्रिंट करता है।
मैं क्या गलत कर रहा हूं?
आईसीयू यूनिकोड पुस्तकालय उपयोग करने पर विचार - [कड़ी] (http://icu-project.org/apiref/icu4c/index.html)। यह यूनिकोड का समर्थन करता है और इसमें कई उपयोगी विशेषताएं हैं। खासकर यदि आप उन तारों में हेरफेर करना चाहते हैं। – WeaselFox
@ वेसेल: यूनिकोड तारों के साथ काम करने के लिए आपको दुनिया में एक अलग पुस्तकालय की आवश्यकता क्यों होगी? –
मेरे अनुभव से wchar तारों (खोज, प्रतिस्थापित आदि) या अन्य बहु-बाइट तारों में हेरफेर करने के लिए एक अलग पुस्तकालय का उपयोग करना बेहतर है। – WeaselFox