我用locale :: global()函数计算了带有特殊字符(éüåöş)的控制台输出。但无法找到任何方法来获取这些特殊字符的输入。
string str;
getline(cin, str);
cout << str;
当我输入“Léonç.ş.ö.ü”
时L'on Y.Y。“。?
这是输出。我该如何解决这个问题?
编辑:问题已解决。我的setlocale命令就在main函数下面。我所做的就是在其他地方设置语言环境。当我这样做。它工作得很好。我不知道为什么。
string str;
getline(cin, str);
cout << str;
setlocale(LC_ALL, "Turkish");
编辑2:这样做效果更好。也适用于文件i / o。
#include <Windows.h>
SetConsoleOutputCP(1254);
SetConsoleCP(1254);
答案 0 :(得分:1)
将setlocale命令放在其他地方,然后在main函数下工作。就像这样:
string str;
getline(cin, str);
cout << str;
setlocale(LC_ALL, "Turkish");
这修复了我程序中的所有字符串和输出:
echo '<script>location.href = "reportConsumption.php?creategenReport="'.$genid.'"&sDate="'.$startdate.'"&eDate="'.$enddate;</script>';