我有这段代码:
std::string st = "SomeText";
...
std::cout << st;
之前我使用的是string
,这个很好用。但现在我的团队想要转移到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"
。
我做错了什么?