我不能在 C++ 中对字符串使用重音符号

I can't use accents with string in C++

我可以用 SetConsoleOutputCP(1252)locale::global(locale"FR-fr") 设置重音,但我不能用它来设置字符串。似乎是其中之一。我可以输出带重音的文本,也可以输出带重音的字符串,但不能同时输出。有什么想法吗?

下面的代码可以用来重现这个问题。只需添加 locale::global(locale"FR-fr")SetConsoleOutputCP(1252):

#include <iostream>
#include <string>
#include <windows.h>
using namespace std;

int main()
{
   string mot;
   cout << "Inscrivez un mot avec des accents (é ou è): ";
   cin >> mot;
   cout << mot;
}

我建议您同时设置 input and output 代码页:

SetConsoleCP(1252);       // input
SetConsoleOutputCP(1252); // output