在Visual Studio Code中如何向C语言程序传递命令行参数
注意:你当前的代码未判断
argc >= 2就直接访问argv[1],如果无参数运行会触发内存访问崩溃,建议先添加参数数量判断逻辑,参考修改如下:
#include <stdio.h> int main(int argc, char* argv[]){ int nArg = argc; char* arg1 = argv[0]; printf("\nnumber of argument is %d", nArg); printf("\n Arg1 is %s", arg1); // 新增参数数量判断,避免越界访问 if(nArg >= 2){ char* arg2 = argv[1]; printf("\n Arg 2 is %s",arg2); } return 0; }
VS Code传入C语言命令行参数的3种常用方法
方法1:终端手动运行(最灵活)
- 先编译代码:打开VS Code内置终端,执行编译命令,假设你的文件名为
test.c:
Windows环境(GCC编译器):gcc test.c -o test.exe
Mac/Linux环境:gcc test.c -o test - 运行时直接带参数执行:
Windows:./test.exe 你要传的参数
Mac/Linux:./test 你要传的参数 - 运行后即可输出对应值,
argc为参数总数量(含可执行文件本身,传1个额外参数的话argc=2),argv[0]为可执行文件路径,argv[1]为你传入的自定义参数。
方法2:配置launch.json调试时自动传参
如果需要调试代码时自动带入固定参数,走VS Code原生调试流程:
- 按
Ctrl+Shift+D(Mac是Command+Shift+D)打开运行调试面板,点击「创建launch.json文件」,选择你的C/C++对应调试环境(GDB/LLDB) - 在生成的
launch.json配置中找到args字段,把你需要传入的参数写入数组,示例:"args": ["测试参数1"], - 保存配置后按F5启动调试,就会自动传入配置好的参数,无需手动输入。
方法3:Code Runner插件运行传参
如果你用Code Runner插件点击右上角按钮运行代码:
- 先打开VS Code设置,搜索
code-runner.runInTerminal,将该选项勾选为true,让代码运行在内置终端中。 - 点击右上角运行按钮后,终端会自动执行编译,生成可执行文件后,你手动在终端的可执行文件路径后面补充你要传的参数,回车运行即可。
- 如果需要固定传入参数,可以搜索
code-runner.executorMap,点击「在settings.json中编辑」,找到C语言对应的配置行,在$fileNameWithoutExt后面加上固定参数即可,示例:"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt 固定参数",
内容的提问来源于stack exchange,提问作者Misterk
相关产品推荐
相关产品推荐

