#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)动态更改编码。