将宽字符串转换成窄字符串需要用到codecvt库中的std::wstring_convert。
#include<string>
#include <codecvt>
int main()
{
std::wstring str = L"中国人";
std::wstring_convert<std::codecvt<wchar_t, char, std::mbstate_t>> converter(new std::codecvt<wchar_t, char, std::mbstate_t>("CHS"));
std::string narrowStr = converter.to_bytes(str);//宽字符串转窄字符串
std::wstring wstr = converter.from_bytes(narrowStr);//窄字符串转宽字符串
return 0;
}