我有代码:
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"
。
我究竟做错了什么 ?
原文由 Roee Gavirel 发布,翻译遵循 CC BY-SA 4.0 许可协议
要显示 wstring,您还需要一个宽版本的 cout - wcout。