程序main命令行的问题,知道的朋友配合一下

太白山鹰 2010-07-06 04:10:37
//test.c
....
.....
void main (int argc, char * argv[])

{
printf("#Args: %ld\n",argc);

sim_random_seed = atol(argv[1]);
sim_num_of_targets = atol(argv[2]);
sim_min_k = atol(argv[3]);
sim_max_k = atol(argv[4]);
sim_min_area = atof(argv[5]);
sim_max_area = atof(argv[6]);
sim_pro_query = atof(argv[7]);
sim_num_grid_x = atol(argv[8]);
sim_num_grid_y = atol(argv[9]);
sim_num_of_clients = atol(argv[10]);
sim_method = atol(argv[11]);
sim_smart_start = atol(argv[12]);//0=off; 1=on
sim_lazy_count = atol(argv[13]);
sim_private_data = atol(argv[14]);//0=off; 1=on
sim_max_height = atol(argv[15]);
sim_max_width = atol(argv[16]);
sim_num_filters = atol(argv[17]);
sim_server_only = atol(argv[18]);
sim_num_cells = atol(argv[19]);

sim_mmb_protection = atol(argv[20]);
sim_step = atol(argv[21]);
sim_continuous_query = atol(argv[22]);
sim_query_point_scheme = atol(argv[23]);
sim_num_querying_users = atol(argv[24]);
sim_location_anonymizer_only = atol(argv[25]);
sim_num_qp_grid_x = atol(argv[26]);
sim_num_qp_grid_y = atol(argv[27]);
sim_max_speed = 6000.0;//20854.0; //atof(argv[21]);

srand((unsigned) sim_random_seed);


fp = fopen(argv[argc-1], "a"); //追加的方式
....
.....
}
诸如这个程序命令参数问题。。
<1 难道执行这个程序一定要输入27个参数吗?
test.exe 参数1 参数2 ...........参数27
<2 fp = fopen(argv[argc-1], "a");
这个输入流参数为什么要用argv[argc-1],这样的用法有什么意义?
期待ing,期待回复,期待进步。。。。。
呵呵。。
...全文
122 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hengshan 2010-07-06
  • 打赏
  • 举报
回复
这个可能是当时设计的问题。

如果真的需要这么多参数,应该用配置文件的。
太白山鹰 2010-07-06
  • 打赏
  • 举报
回复
不是吧,大家这么大的火气,呵呵
selooloo 2010-07-06
  • 打赏
  • 举报
回复
27个参数啊,错一个或少一个就GAME OVER了
anniue 2010-07-06
  • 打赏
  • 举报
回复
很垃圾代码。。。
itegel84 2010-07-06
  • 打赏
  • 举报
回复
垃圾代码,没什么优点,规劝LZ看点其他代码。
1.没有任何参数检测
2.没有任何异常保护
3.没有任何设计
[Quote=引用 4 楼 xxxx000 的回复:]
1.不是我的程序,我是来看别人的程序
2.argv[argc-1]就是最后一个参数,我当然知道,
我的意思是问下,别人写:
fp = fopen(argv[argc-1], "a")的用意,有什么特别好的优点吗?
[/Quote]
zhangyafei13 2010-07-06
  • 打赏
  • 举报
回复
..////
太白山鹰 2010-07-06
  • 打赏
  • 举报
回复
1.不是我的程序,我是来看别人的程序
2.argv[argc-1]就是最后一个参数,我当然知道,
我的意思是问下,别人写:
fp = fopen(argv[argc-1], "a")的用意,有什么特别好的优点吗?
onezeros 2010-07-06
  • 打赏
  • 举报
回复
如果下面程序必须用到这几个以sim_开头的变量,或者没有做容错处理的话,
那么却是要输入这么多文件
不过为了省事,可以写一个cmd文件
就是.cmd结尾的文件

然后把运行程序的命令写进去就可以了
比如exe文件名为test 参数有4个
cmd文件使用相对路径,跟exe放在一起

test argv1 argv2 argv3
第一个参数是exe文件名
gunsand 2010-07-06
  • 打赏
  • 举报
回复
1)需要
2,gen azure110一样
azure110 2010-07-06
  • 打赏
  • 举报
回复
你的程序你干嘛问别人是干嘛的程序,你里面需要27参数干嘛还问别人;
2。argv[argc-1]就是最后一个参数呗,数组时从0开始的

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧