que tenían el código:¿Cómo inicializar e imprimir una std :: wstring?
std::string st = "SomeText";
...
std::cout << st;
y que funcionaba bien. Pero ahora mi equipo quiere pasar al wstring
. así que he intentado:
std::wstring st = "SomeText";
...
std::cout << st;
pero esto me dio un error de compilación:
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
Después de buscar en la web leí que debo definirlo como:
std::wstring st = L"SomeText"; // Notice the "L"
...
std::cout << st;
este compilado, pero imprime "0000000000"
en lugar de "SomeText"
.
¿Qué estoy haciendo mal?
considerar el uso de la biblioteca UCI Unicode - [link] (http://icu-project.org/apiref/icu4c/index.html). Es compatible con Unicode y tiene muchas funciones útiles. especialmente si quieres manipular esas cadenas. – WeaselFox
@Weasel: ¿Por qué en el mundo necesitarías una biblioteca separada para trabajar con cadenas Unicode? –
desde mi experiencia, es mucho mejor usar una biblioteca separada para manipular cadenas wchar (buscar, reemplazar, etc.) u otras cadenas de bytes múltiples. – WeaselFox