【发布时间】:2016-04-29 00:18:06
【问题描述】:
我在处理 main 之外的命令行参数时遇到问题。当用户在命令行输入两个数字时,我的代码应该进行基本的数学运算。
例如“程序名称”-add 1 2 输出:3
主函数中唯一允许的函数是处理命令行参数然后进行基本添加的函数。尝试调用参数时出现错误。这是我的代码....
#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 未声明。关于如何仅使用 process 函数来完成此任务的任何想法?
【问题讨论】:
-
int main()-->int main (int argc, char *argv[])和process(args, *argv[]);-->process(arc, argv); -
printf("%d");将调用 未定义的行为 以获得参数的运气。 -
argv[n] 和 argv[n+1] 转换为 int 为
num1和num2然后printf("%d\n", add(num1, num2));