VSCode可编译C代码但无法编译C++代码的解决求助
解决VSCode中C++编译/运行报错(exit code -1)的方案
步骤1:确认g++编译器可正常访问
- 检查
C:\MinGW64\bin目录下是否存在g++.exe,若缺失需重新下载完整的MinGW64包 - 打开命令提示符,输入
g++ --version,若能输出版本信息说明环境变量配置正确;若提示“找不到命令”,需将C:\MinGW64\bin添加到系统环境变量PATH,然后重启VSCode和命令提示符
步骤2:配置Code Runner扩展使用g编译C文件
- 打开VSCode设置(快捷键
Ctrl+,),搜索「Code Runner: Executor Map」 - 点击「编辑settings.json」,找到
cpp对应的配置项,修改为:"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt" - 保存配置文件后重启VSCode
步骤3:修正C/C++扩展的编译器配置
- 按下
Ctrl+Shift+P,选择「C/C++: Edit Configurations (UI)」 - 将「Compiler path」设置为
C:\MinGW64\bin\g++.exe - 将「IntelliSense mode」设置为
gcc-x64 - 保存配置
步骤4:排查代码中的运行时错误
你的C++代码存在潜在的运行时崩溃问题:当没有用户选择「Terreno agricolo」(tipo为b/B)时,变量erAg的值为0,此时执行mediaAg = sommaAg / erAg会触发除零错误,导致程序崩溃并返回exit code -1。
修复方案:在计算平均值前先判断分母是否为0,例如:
case 'b': case 'B':{ sommaAg = sommaAg + importo; if (erAg != 0) { // 添加非零判断 mediaAg = sommaAg / erAg; } else { mediaAg = 0; // 或其他合理默认值 } break; }
同理,mediaEd的计算也需要添加类似的非零判断。
内容的提问来源于stack exchange,提问作者Zaccaria Francescato
相关产品推荐
相关产品推荐

