Ben kodu vardı:Std :: wstring nasıl başlatılır ve yazdırılır?
std::string st = "SomeText";
...
std::cout << st;
ve bu iyi çalıştı. Ama şimdi takımım wstring
'a geçmek istiyor. Yani Denedim:
std::wstring st = "SomeText";
...
std::cout << st;
ama bu bana bir derleme hata verdi: Ben olarak tanımlamak gerektiğini okumak web arama yaptıktan sonra
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;
bu derlenmiş ama "SomeText"
yerine "0000000000"
yazdırır.
Neyi yanlış yapıyorum?
yoğun bakım unicode kütüphanesi kullanmayı düşünün - [link] (http://icu-project.org/apiref/icu4c/index.html). Unicode'u destekler ve birçok kullanışlı özelliğe sahiptir. özellikle bu dizeleri değiştirmek istiyorsanız. – WeaselFox
@Weasel: Neden dünyada Unicode dizeleriyle çalışmak için ayrı bir kütüphaneye ihtiyacınız olacak? –
deneyimlerimden, wchar dizelerini (arama, değiştirme vb.) Veya diğer çoklu bayt dizilerini işlemek için ayrı bir kitaplık kullanmak daha iyidir. – WeaselFox