我在从控制台到wstring
读取特殊字符(波兰语)时遇到问题。这是代码:
#include <locale>
#include <iostream>
int main()
{
std::locale::global(std::locale("pl_PL.UTF-8"));
std::wcout.imbue(std::locale("pl_PL.UTF-8"));
std::wcin.imbue(std::locale("pl_PL.UTF-8"));
std::wstring brand;
for(int i = 0; i < 6; ++i)
{
std::wcout << L"Name: ";
std::getline(std::wcin, brand);
std::wcout << brand << std::endl;
}
return 0;
}
以下是示例输入/输出:
Name: abc abc
abc abc
Name: abc abć
abc abbć
Name: abć abc
abbć abc
Name: ąbc
翿ąbc
Name: ąbć
翿ąbbć
Name: ąbć ąbć
翿ąbbć ąbbć
我该如何解决这个问题? 我使用MacOS,clang ++作为编译器,iTerm作为终端