我在处理main之外的命令行参数时遇到问题。当用户在命令行输入两个数字时,我的代码应该进行基本的数学运算。
e.g。 “程序名称”-add 1 2 输出:3
main函数中允许的唯一函数是处理命令行参数然后进行基本添加的函数。我试图调用参数时遇到错误。这是我的代码......
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void process(int args, char *argv[]); //Used to process arguments from the command line.
int add(int num1, int num2);
int main()
{
process(args, *argv[]);
return (0);
}
void process(int args, char *argv[])
{
int i;
int num1 = 0;
int num2 = 0;
for (int i = 1; i < args; i++)
{
if (strcmp(argv[i], "-a") == 0 || strcmp(argv[i], "-add") == 0) // Line to get -a or -add switch to add two numbers.
{
add(num1, num2); //add function call
printf("%d"); // print result
}
}
}
int add(int num1, num2)
{
return num1 + num2;
}
我得到的错误是args和argv未声明。关于如何使用过程函数完成此任务的任何想法?
答案 0 :(得分:2)
int main()
{
process(args, *argv[]);
return (0);
}
您认为args
(按惯例应为argc
)和argv
来自何处?
另外,为什么在将*
传递给[]
时,我将argv
和process()
包括在内?尝试实际理解您正在编写的代码,而不是仅仅复制/粘贴片段并按摩它们直到编译完成。
main
的定义不必包含它们,但您的程序需要它们。所以这样做:
int main(int argc, char *argv[])
{
process(argc, argv);
return 0;
}