Как инициализировать и распечатать std :: wstring?

У меня был код:

std::string st = "SomeText";
...
std::cout << st;

, и он работал нормально. Но теперь моя команда хочет перейти на wstring . Итак, я попробовал:

std::wstring st = "SomeText";
...
std::cout << st;

, но это дало мне ошибку компиляции:

Ошибка 1 ошибка C2664: 'std :: basic_string <_Elem, _Traits, _Ax> :: basic_string (const std :: basic_string <_Elem, _Traits, _Ax> &) ': невозможно преобразовать параметр 1 от 'const char [8]' к 'const std :: basic_string <_Elem, _Traits, _Ax> & 'D: ... \ TestModule1.cpp 28 1 TestModule1

После поиска в Интернете я прочитал, что должен определить его как:

std::wstring st = L"SomeText"; // Notice the "L"
...
std::cout << st;

это скомпилировано, но печатает «0000000000012342» вместо ] "SomeText" .

Что я делаю не так?

51
задан BartoszKP 17 September 2014 в 22:19
поделиться