Xcode C++:cin接收string类型的中文变量值,cout输出的为什么是字母?

 #include 
#include 

using namespace std;

int main()
{
    string a;
    
    cin >> a;
    
    cout << a << endl;
    
    system("pause");
    return 0;
}

并没有问题,如果有请截图说明。

img

处理中文请使用:
wchar_t
L'中'
wstring
L"中文"
wcin和wcin.imbue(locale("chs"));
wcout和wcout.imbue(locale("chs"));

输入输出截图看看

调用没啥问题,请把你输入,和想输出的结果发出来

这个厉害了

嗯,可以看下这个讲解【C++输入与输出—cout和cin的用法】,链接:https://blog.csdn.net/zhanghaotian2011/article/details/8868577?spm=1001.2101.3001.6650.14&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-14-8868577-blog-70254640.pc_relevant_aa2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-14-8868577-blog-70254640.pc_relevant_aa2&utm_relevant_index=15

你是拼音输入的中文“北京“吧,输入完beijing后要回车或选择1才输入了真正的汉字北京,否则就是把beijing这个拼音串输入进去了

问题可能与输入文本的编码有关。在C++中使用cin和cout流时,默认编码通常基于系统当前的区域设置。这意味着,如果系统未配置为支持汉字,cin可能无法正确解释输入文本,导致文本发送到cout时出现意外输出。
要解决此问题,可以尝试将cin和cout流的区域设置为支持中文字符的区域设置。这可以使用imbue()方法完成,如下所示:

#include <iostream>
#include <string>
#include <locale>

int main()
{
    // Set the locale for the cin and cout streams to a locale that supports Chinese characters
    std::cin.imbue(std::locale("zh_CN.UTF-8"));
    std::cout.imbue(std::locale("zh_CN.UTF-8"));

    std::string a;
    std::cin >> a;
    std::cout << a << std::endl;

    system("pause");
    return 0;
}

这应该允许cin正确解释用户输入的中文字符,并允许cout正确输出结果字符串。