如何在运行a.out 的时候输入参数决定运行哪个 function
我有一个需求,就是在 int main() 里面会接收输入的 argv,然后当 1 的时候,执行 fun1(), 2 的时候执行 fun2(), 3 的时候执行 fun3()不是 scanf 获取用户输入哦
而是 gcc 编译以后,生成了一个 a.out 的文件
然后 ./a.out 1 这种的,接收参数,把 1 传给 main,main 决定执行 fun1()
有点类似于 python 里面的 sys.argv,但是我不知道 c 里面怎么实现
求助各位大佬{:10_297:} int main(int argc, char* argv[])
自己print一下这两个参数即可
一个是参数个数,一个是参数列表 本帖最后由 人造人 于 2021-8-20 21:01 编辑
#include <stdio.h>
void f1(void) {
printf("void f1(void)\n");
}
void f2(void) {
printf("void f2(void)\n");
}
void f3(void) {
printf("void f3(void)\n");
}
int main(int argc, char *argv[]) {
if(argc != 2) return -1;
int sel;
sscanf(argv, "%d", &sel);
switch(sel) {
case 1: f1(); break;
case 2: f2(); break;
case 3: f3(); break;
}
return 0;
}
这不是学c的前几节课的知识吗 (我当时看的哔哩哔哩的嵌入式教程){:10_292:} 人造人 发表于 2021-8-20 20:59
感谢大佬{:10_266:} 人造人 发表于 2021-8-20 20:59
再次感谢,我根据实际需求,对大佬的代码修改了一下,现在可以接收字符串了,而不是单一的数字{:10_297:}
此处也要感谢楼上的猫大佬给我启发,读 argv 里面的对应位置,获取输入,比如 ./a.out testing,argv 对应的即为我输入的参数 'testing',然后 if strcmp 进行判断,如果匹配到我的条件,执行对应的 function{:10_254:} Daniel_Zhang 发表于 2021-8-22 15:24
再次感谢,我根据实际需求,对大佬的代码修改了一下,现在可以接收字符串了,而不是单一的数字
...
^_^
页:
[1]