#include <iostream>
#include <string>
using namespace std;

string mystring1, mystring2, mystring3 = "grové";

int main(){
  mystring1 = "grové";
  getline( cin, mystring2 );  //Here I type "grové" (without "")
  cout << "mystring1= " << mystring1 << endl;
  cout << "mystring2= " << mystring2 << endl;
  cout << "mystring3= " << mystring3 << endl;
  return 0;
}


上面的代码输出为:


  mystring1 = grov8
  mystring2 =grové
  mystring3 = grov8


虽然当我在此处剪切和粘贴代码时它是:


  mystring1 =grovΘ
  mystring2 =grové
  mystring3 =grovΘ


为什么mystring2的内容与mystring1和mystring3不同?

最佳答案

假设您使用Microsoft Windows:源代码的编码与Windows命令行的编码不同。

在命令行中键入chcp以查看当前的控制台代码页。 (我的是850)

您有三种选择:


将源代码的代码页/编码更改为控制台的代码页/编码。
将控制台的代码页/编码更改为源文件的代码页/编码。
使用库(或Windows API)动态更改编码。

09-08 09:29