特殊字符问题

时间:2015-08-03 21:29:10

标签: c++ special-characters

首先,我是编程新手,所以你可能需要耐心等待我。问题是,我正在编写一个基本上获取输入的程序,并使用它来输出一些信息以及.doc中的输入。

我的问题是,当我使用像é í ó ã õ º ª这样的特殊字符时,我有一些常量字符串以一种搞砸的方式输出。

我能够通过添加setlocale(LC_ALL, ("portuguese"))来修复它,但后来我搞砸了不再打印特殊字符的输入输出(也就是变量字符串)。我有什么线索可以解决这个问题?我已经尝试过wstrings并且到处寻找,但找不到一个解决方案。

如果有帮助,我可以在这里显示我的代码。

这是我的问题的一个例子:

#include <iostream>
#include <string>

using namespace std;

int main()
{
string a;
wcout << "Enter special characters like éíó: ";
getline (cin, a);
cout << a;

}

我无法在控制台中同时正确地输出常量字符串和变量字符串。

1 个答案:

答案 0 :(得分:0)

您可能正在使用Windows。 Windows的命令提示符默认编码为CP850,此编码很少在其他任何地方使用,它将显示大多数特殊符号,与您在常用文本编辑器中通常看到的不同。您可以尝试使用Windows API SetConsoleOutputCP(1252);SetConsoleCP(1252);更改为CP1252,这是一种更兼容的编码,应该以与您在编辑器中看到的相同的方式显示这些符号。如果可用,您将需要#include <windows.h>