【发布时间】:2016-03-10 19:58:12
【问题描述】:
我的程序不接受诸如“à”之类的符号,因为世界上某些城市名称将这些符号作为字符。我正在使用 C++。我已经尝试过各种类型的输入流,例如 getline(cin,string)、fgets 等。所有这些收集输入的形式见“...”处的特殊符号。
这是在 Visual Studio 2015 中制作的 Windows 控制台应用程序
例如
string funnyChar = "à";
getline(cin, checkFunny);
if (checkFunny.compare(funnyChar) == 0)
//do things
用户输入 àero
ALT+0224ero
或用户输入àero as
ALT+133ero
在代码中,输入流无法看到输入的 alt 代码,因此,在我的 if 语句中
if(checkFunny.compare(funnyChar)==0)
永远不会工作。
或多或少,我需要能够接收这些(任何)特殊字符,以便我可以保存它们,然后稍后显示它们,但也不接受非常具体的字符,例如 † (alt+0134)
【问题讨论】:
-
也许你需要
wstring和wcin? -
我不确定什么是扩展 ASCII 码(>127?),也许你需要 utf?
-
可接受的内容由您的
std::locale设置决定。 -
您以哪种格式存储源代码?哪个编辑器?