vscode无法输入中文,但是可以输出

这个是vscode版本

img

最近要写的一个程序有中文输入要求。但是vscode的中文输入好像有问题,直接用vscode运行和调试没法输入。
语言用的C,下面是测试程序

#include <stdio.h>
int main()
{
    char a[100] = {0};
    scanf("%c%c", &a[0], &a[1]);
    printf("中文 %s", a);
}

调试之后看到程序会把输入的中文识别成随机一个字符,然后输出乱码。但是直接在字符串里的中文可以输出。

目前已经试过了好几种办法
1.改源代码的编码方式:只有UTF-8是可以输出中文,别的输入输出都不行
2.用终端和run code插件包括学校的oj都是可以正常输入输出,但是vscode不行
3.用首选项改了终端的默认编码集,除了UTF-8都是输入输出都不行
4.加了-fexec-charset=UTF-8 -finput-charset=GBK之后也不行,但是字符串里的中文有报错(不排除我加错位置的可能,我在task,setting,和c_cpp_properties都试着加了)

emm,好像成了。launch里面有一个

"externalConsole": false

是开独立控制台的,之前一直想开,就想着顺便开了。结果就好了,别的所有方法好像都没用到。
看起来是vscode集成终端的编码问题,网上很多都是编译后程序无法识别的解决方案,所以用不了,所以如果有大佬知道集成终端怎么改可以告知一下。


#include <stdio.h>
#include <wchar.h>

int main()
{
    wchar_t a[100] = {0};
    wscanf(L"%ls", a);
    wprintf(L"中文 %ls", a);
    return 0;
}

解析:在代码中使用wscanf和wprintf函数来输入和输出中文字符。这些函数是用于宽字符的,可以处理Unicode字符集,包括中文字符。
注意:wscanf和wprintf函数的格式化字符串需要加上L前缀,表示宽字符。另外,%ls用于读取和输出宽字符字符串。

  • 以下回答由chatgpt基于相关博客总结生成:

    如果在Windows系统中,可以尝试以下解决方案:

    1. 确认 VS Code 编辑器的用户设置(settings.json)中是否添加以下行:

    "terminal.integrated.unicodeVersion": "10"

    如果没有,请手动添加。

    1. 确认系统区域设置(Region & Language)是否设置为中文。

    2. 确认系统语言包是否完整,或者重新安装系统语言包。

    3. 尝试更新 VS Code 编辑器到最新版本。

    如果在 macOS 系统中,可以尝试以下解决方案:

    1. 确认 VS Code 编辑器的用户设置(settings.json)中是否添加以下行:

    "terminal.integrated.unicodeVersion": "10"

    如果没有,请手动添加。

    1. 尝试切换输入法至中文输入法,或者重新安装中文输入法。

    2. 尝试更新 VS Code 编辑器到最新版本。

    如果以上解决方案均不可行,那么可能需要检查源代码中是否存在与中文编码相关的错误或者疏漏,并尝试进行修复。