控制台带参数程序的问题

marinero 2009-03-02 05:21:12
大家好,现在有两个做同样功能的函数,现在小弟想做个控制台程序,通过输入参数来控制执行两个函数中的某一个参数,请问如何下手?谢谢
...全文
214 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xtting_8984313 2009-03-03
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 fableboy 的回复:]
用函数指针吧,用存储函数指针的数组,然后通过偏移量由输入的参调用相应的函数。
[/Quote]

不错,用这个
jakqigle 2009-03-03
  • 打赏
  • 举报
回复
例子:


void func1(int){ cout << "func1";};

void func2(int){ cout << "func2"};

void func3(int){
for(int i = 0; i < 10; ++i)
cout << "func3" << endl;
}
......

typedef void (*FuncPtr)(int);

int main(int argc, char* argv[]){
FunPtr funs[n];
funs[0] = &func1;
funs[1] = &func2;
funs[2] = &func3;

......//通过参数确定调用哪个参数
int index= 参数
int can = 要传递的函数参数
*funs[index](can);
}

jakqigle 2009-03-03
  • 打赏
  • 举报
回复
用函数指针吧,用存储函数指针的数组,然后通过偏移量由输入的参调用相应的函数。
ysysbaobei 2009-03-03
  • 打赏
  • 举报
回复
sunnywyg 2009-03-02
  • 打赏
  • 举报
回复
argc是参数个数
argv是参数数组
默认第一个参数是程序的名称
因此取参数时要从第二个元素开始取,用char*可以取道,但要注意字符集编码方式(vs2005中),要设为使用多字节字符集
而要测试时,可在项目属性的调试里的命令参数中输入,当然此时不用输入程序名称,系统会自带
goodcook 2009-03-02
  • 打赏
  • 举报
回复
int main(int argc, char* argv[])
{
/*读取参数*/
char* a,b,c;
for( i = 1; i < argc; i++ )
{
if(!strncmp(argv[i],"argv_1=",7)) //7是“argv_1=”的长度
{
a = argv[i] + 7; //+7 即 取后面字符串地址
}
else if(!strncmp(argv[i],"argv_2=",7))
{
b = argv[i] + 7;
}
else if (!strncmp(argv[i], "argv_3=", 7))
{
c = argv[i]+7;
}
else
{
cerr << "usage: yourprogram.exe argv_1=xx argv_2=xx argv_3=xx\n"; //否则输出用法并退出
exit(1);
}
}
//其它函数处理过程;

return 0;
}


大致是这样吧
bfhtian 2009-03-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 marinero 的回复:]
如果我想要自定义一个诸如dir之类的命令,它的后面跟参数如何搞呢?
[/Quote]
一样的,看看书上的argc和argv的用法,就应该会了
xtting_8984313 2009-03-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 marinero 的回复:]
如果我想要自定义一个诸如dir之类的命令,它的后面跟参数如何搞呢?
[/Quote]

google吧,不难

avgs avgc

这些关键词够用了,自己学习比问问题好。
别人没必要为了这个写好多吧,否则没有时间干别的了。
marinero 2009-03-02
  • 打赏
  • 举报
回复
如果我想要自定义一个诸如dir之类的命令,它的后面跟参数如何搞呢?
xtting_8984313 2009-03-02
  • 打赏
  • 举报
回复
google吧,不难

avgs avgc
  • 打赏
  • 举报
回复
up

65,211

社区成员

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

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