如何修复M1 MacBook上VS Code无法获取用户输入的问题
解决M1 MacBook上VS Code终端无法获取用户输入的问题
以下是针对你的场景(M1 Mac+VS Code+Code Runner插件,gcc/clang编译,程序能输出但无法接收输入)的可行解决方案:
方案1:修改Code Runner执行命令,使用系统终端运行
- 打开VS Code设置(快捷键
Cmd + ,),搜索code-runner.executorMap,点击「编辑 in settings.json」。 - 替换C/C++对应的执行命令:
该配置会让编译后的程序在Mac系统自带的Terminal.app中运行,而非VS Code集成终端,确保交互式输入正常工作。"code-runner.executorMap": { "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && open -a Terminal.app $dir$fileNameWithoutExt", "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && open -a Terminal.app $dir$fileNameWithoutExt" }
方案2:调整VS Code集成终端设置
- 确认
code-runner.runInTerminal选项已勾选(设置中直接搜索该选项)。 - 检查集成终端默认配置:搜索
terminal.integrated.defaultProfile.osx,确保选择的是zsh或bash(M1 Mac默认终端为zsh)。 - 尝试关闭
code-runner.preserveFocus选项,让程序运行时自动聚焦到终端窗口,方便输入操作。
方案3:以Rosetta模式启动VS Code
M1芯片原生模式可能引发部分终端交互兼容问题,尝试:
- 找到应用程序文件夹中的VS Code,右键选择「显示简介」。
- 勾选「使用Rosetta打开」,重启VS Code后重新运行程序。
额外验证
确保测试代码无输入逻辑问题,可使用以下基础输入测试代码验证:
#include <stdio.h> int main() { int num; printf("Enter a number: "); scanf("%d", &num); printf("You entered: %d\n", num); return 0; }
内容的提问来源于stack exchange,提问作者Jacob Lingo
相关产品推荐
相关产品推荐

