如何在c ++中输入特殊字符

时间:2018-03-31 11:03:41

标签: c++ c++14

我用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);

1 个答案:

答案 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>';