不只是 [C 语言] :请问各位大佬是如何处理 main 函数传入的参数的

2019-09-24 09:16:56 +08:00
 12tall

请问,如果传入 main 函数的参数较多,应该如何组合处理啊

/*
* demo.exe
* 使用:demo.exe -name 12tall -age 12 -boy -newbie
*/
int main(argc,char* argv[]){
  /*
  * 有一个思路:
  * 1. 参数分为两种:需要读取值的,例如 -name -age ;不需要读取值的,大胆称为 [状态参数] 吧,例如 -boy -newbie
  * 2. 一般需要传入值的参数都赋予默认值
  * 3.  [状态参数] 可以这样取值:-boy=01b、-girl=00b、-newbie=00b、-expert=10b ;这样就可以组成 00b~11b 四种状态  
  * 4. 然后对应着写 4 个状态处理的函数(参数就是需要取值的那些参数,例如 name、age ),放在一个存放函数指针数组里面,由状态参数组合成的最终值就是指向合适函数的索引
  */
}
3040 次点击
所在节点    程序员
23 条回复
superalsrk
2019-09-24 18:18:43 +08:00
同 17L, 几乎每个语言都有类似 argsparse 的东西, 几乎都算是一个标准了
tommyZZM
2019-09-24 18:51:53 +08:00
有解析的库的,引用一下就好了
类似这种 https://github.com/vietjtnguyen/argagg,C++
12tall
2019-09-24 19:22:36 +08:00
@xpfd
@superalsrk
@tommyZZM

感谢各位大佬啊,还是自己水平不够吧,第一版就是用的 ifelse 结果把自己绕进去了,还要再继续努力啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/603571

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX