#include <iostream>
#include <windows.h>
int main() {
// 设置控制台输出字符编码为UTF-8
SetConsoleOutputCP(65001);
// 设置控制台输入字符编码为UTF-8
SetConsoleCP(65001);
std::cout << "你好,世界" << "hello, world" << std::endl;
std::string name;
std::cout << "输入你的名字" << std::endl;
std::cin >> name;
std::cout << "你好," << name << std::endl;
std::cin >> name;
return 0;
}
上面的代码运行结果如下,我已经把控制台输入输出字符编码都设置为了utf-8,但是我给“name”输入“大地earth”时,最后只打印了“earth”
#include <iostream>
#include <windows.h>
int main() {
// 设置控制台输出字符编码为UTF-8
SetConsoleOutputCP(65001);
// 设置控制台输入字符编码为UTF-8
SetConsoleCP(65001);
std::cout << "你好,世界" << "hello, world" << std::endl;
std::string name;
std::cout << "输入你的名字" << std::endl;
std::getline(std::cin, name); // 使用 getline 读取输入
std::cout << "你好," << name << std::endl;
return 0;
}