zyj1214 发表于 2025-5-10 08:37:31

关于VS code中cin和cout问题?

为什么键盘输入中文后,,用cout输出不显示键盘输入的文字,是哪里设置不对吗?

FishC 发表于 2025-5-10 08:38:05

关于VS Code中cout无法显示中文的解决方法

这个问题通常由以下原因导致,请按顺序检查:


[*]1. 控制台编码不匹配
VS Code终端默认编码可能与程序编码不一致。尝试:

chcp 65001// 将终端设置为UTF-8编码

在VS Code终端中右键选择以UTF-8重新打开

[*]2. 源码文件编码问题
确保源文件保存为带BOM的UTF-8:
点击VS Code右下角编码标识 → Save with Encoding → 选择UTF-8 with BOM

[*]3. 添加本地化设置
在代码开头添加:

#include <locale>
using namespace std;

int main() {
    setlocale(LC_ALL, "chs");// 或 "zh_CN.UTF-8"
    // 后续代码...
}


[*]4. 编译器参数设置
对于g++编译器,添加编译选项:

-fexec-charset=GBK// Windows系统推荐

-fexec-charset=UTF-8// Linux/WSL推荐



注意:不同系统终端默认编码不同:

[*]Windows CMD默认GBK
[*]Windows Terminal建议设为UTF-8
[*]Linux/macOS默认UTF-8


如果仍不生效,建议使用调试器查看变量实际存储值,确认是否是输入/输出环节的编码问题。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

不二如是 发表于 2025-5-10 09:05:22

默认情况下,VS Code 的「调试控制台」只是一个日志输出窗口,并不能像普通终端那样把你的键盘输入实时 “打给” std::cin。

要把调试时的终端切到可以交互 stdin 的「集成终端」或「外部控制台」。

在 .vscode/launch.json 里把终端改成 integratedTerminal :

{
"version": "0.2.0",
"configurations": [
    {
      "name": "g++.exe build and debug",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}/${fileBasenameNoExtension}.exe",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "console": "integratedTerminal",    // ← 这样才能在「终端」里输入,而不是 Debug Console
      //"externalConsole": true,          // ← 或者打开这个,用外部窗口
      "MIMode": "gdb",
      "miDebuggerPath": "D:/mingw64/bin/gdb.exe",
      "preLaunchTask": "g++ build active file"
    }
]
}

或者干脆用外部控制台
(不会的话,可以网上搜“”)

然后 如果要真正确保中文输入、输出无乱码/不丢失,就用 SetConsoleCP/SetConsoleOutputCP(CP_UTF8) + 宽字符流 std::wstring + _setmode(..., _O_U16TEXT)。

player-none 发表于 2025-5-10 11:52:14

试试std::cin>>str?

我好像记得getline只能给char数组用
页: [1]
查看完整版本: 关于VS code中cin和cout问题?