VScode运行c遇到问题总结
习惯了vscode,虽然插本一开始学c时候用的是vs,奈何我又不是天天写c,偶尔底层才用到c,这么轻量化的vscode拿来运行c不香吗。
在vscode配置运行c是一件非常棘手的事情,所以有了此贴记录。
上一帖已介绍gcc环境安装:https://www.cnblogs.com/NanKe-Studying/p/16245588.html
在c文件目录创建.vscode(以后有c程序想要运行直接把这个配置目录托到对应程序即可)
里面分别存放3个配置文件项
c_cpp_properties.json 、 launch.json 、 tasks.json
分别对应以下
{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ], "compilerPath": "F:\\software\\mingw\\bin\\g++.exe", "cStandard": "c11", "cppStandard": "c++17", "intelliSenseMode": "gcc-x64" } ], "version": 4 }
{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "preLaunchTask": "task g++",//调试前执行的任务,就是之前配置的tasks.json中的label字段 "type": "cppdbg",//配置类型,只能为cppdbg "request": "launch",//请求配置类型,可以为launch(启动)或attach(附加) "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",//调试程序的路径名称 "args": [],//调试传递参数 "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true,//true显示外置的控制台窗口,false显示内置终端 "MIMode": "gdb", "miDebuggerPath": "F:\\software\\mingw\\bin\\gdb.exe", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "type": "shell", "label": "task g++", //任务的名字,就是刚才在命令面板中选择的时候所看到的,可以自己设置 "command": "F:/software/mingw/bin/g++.exe", "args": [ //编译时候的参数 "-g", //添加gdb调试选项 "${file}", "-o", //指定生成可执行文件的名称 "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "F:/software/mingw/bin" }, "problemMatcher": ["$gcc"], "group": { "kind": "build", "isDefault": true //表示快捷键Ctrl+Shift+B可以运行该任务 }, "presentation": { "panel": "new" //默认为“shared“表示共享,改成new之后每个进程创建新的端口 } } ] }
以上对应的bin路径只需改成自己MinGw安装的bin路径即可
以上前提是先拓展商店安装
F5打开Windows的dos终端运行,F6在vscode内置的调windows终端运行。
解决输出结果中文乱码问题
F5以GBK文件运行,F6以gb2312
解决代码中注释乱码问题
设置中搜索Files.autoGuessEncoding,打勾选中此项
解决运行终端时候一闪而过的问题
在main方法return 0 前带上getchar();,可让它一直等待输入
最后是一定不要以中文命名目录结构
测试99乘法表
F5
F6
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗