假设我有一个如此构造的代码:主要功能 - 打开文件,搜索并抓取特定变量的文本/数字,然后关闭。另一个文件被打开,搜索更多并关闭。然后,代码如下实现argv argc:
if (argc >= 5) {
if (atoi(argv[1]) == 1) {
compare();
}
if (atoi(argv[2]) == 2) {
certainblood();
}
if (atoi(argv[3]) == 3) {
longestpatient();
}
}
所以在这里,如果我要运行program.exe 1,它应该显示该函数并执行该函数应该执行的操作。然后program.exe 2应该执行其他功能,依此类推。为什么它不接受我的变量并将它们传递给函数。它独自运行功能。即使我创建了一个函数来打开这两个文件并将它们放在argv中,它仍然可以执行该功能。为什么会这样?有人可以帮忙吗?
答案 0 :(得分:0)
如果有4个或更多参数,您只想检查argv[]
值。你真的想在那里进行argc测试吗?
我认为你的意思是在每个argv[1]
测试中检查if
(现在你正在检查parm 1是否为1,如果parm 2是2,...)
答案 1 :(得分:0)
在不知道程序可能使用的其他参数的情况下,请尝试以下操作,省略argv >= 5
检查,因为在您的示例中,您只提供一个参数(argc == 2):
if (atoi(argv[1]) == 1) {
compare();
}
if (atoi(argv[1]) == 2) { /* changed argv[2] to argv[1] */
certainblood();
}
if (atoi(argv[1]) == 3) { /* changed argv[3] to argv[1] */
longestpatient();
}
argv[0]
返回程序名称,
argv[1]
第一个参数,
argv[2]
第二个参数。