風清掦 2025-04-15 10:54 采纳率: 50%
浏览 43

VS code中运行C++代码时,通过cin输入中文字符,输出无显示或为乱码

VS code中运行C++代码时,cout可以正常输出中文字符,但通过cin输入中文字符后,输出却显示有问题,通过cin输入英文则没有问题。请问各位是哪里的问题,该如何解决?

#include <iostream>
#include<string>
 
using namespace std;
 
int main()
{
    string name;

    cout << "吴彦祖,Please enter your name: ";
    cin >> name;
    cout << "Your name is:" << name << endl;
 
    return 0;
}

img

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-04-15 10:55
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    VS Code中运行C++代码时,通过cin输入中文字符,输出无显示或为乱码

    问题分析:VS Code中运行C++代码时,通过cin输入中文字符,输出无显示或为乱码,而cout可以正常输出中文字符。

    解决方案:

    1. 在VS Code中,添加编译器选项 -finput-charset=UTF-8,以指定输入字符集为UTF-8。可以在tasks.json文件中添加以下代码:
    {
        "version": "2.0.0",
        "tasks": [
            {
                "type": "cppbuild",
                "label": "C++ build",
                "command": "g++",
                "args": ["-std=c++11", "-finput-charset=UTF-8", "-o", "${fileDirname}/${fileBasenameNoExtension}", "${file}"],
                "options": {
                    "cwd": "${fileDirname}"
                }
            }
        ]
    }
    
    1. 在C++代码中,使用std::wcinstd::wcout来输入和输出Unicode字符。例如:
    #include <iostream>
    #include <locale>
    
    int main() {
        std::locale loc;
        std::wcin.imbue(loc);
        std::wcout.imbue(loc);
    
        std::wstring input;
        std::wcin >> input;
    
        std::wcout << input << std::endl;
    
        return 0;
    }
    
    1. 在VS Code中,安装插件C/C++ Extension Pack,该插件提供了C++编译器和调试器,可以帮助解决编译和运行问题。

    这些解决方案可以帮助你解决VS Code中运行C++代码时,通过cin输入中文字符,输出无显示或为乱码的问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月15日