将* argv []放入字符数组中

时间:2014-02-19 21:47:06

标签: argv argc

我试图把命令行上的参数放到一个整数数组中,这样我就可以用它们进行计算。我要解决的问题是从argv [1]开始接受参数(我不需要./a.out)并将它们放入一个字符数组中,然后检查它是否是一个数字。如果是这样,我然后将它们放入整数数组。我现在的问题是我收到了一个总线错误。我的代码如下。非常感谢任何建议。谢谢。

这是我的意见:

./a.out 2 3

和我的输出:

Good
Input 1 is good
Bus error: 10

代码: *

int main (int argc, char *argv[ ] )
{
    .... //declaration of variables

    if (argc == 3) {
        printf("Good\n");
    }
    else {
        printf("Wrong amount of inputs\n");
        exit(0);
    }

    for (i = 1; i < argc; i++) {
        //length = strlen(argv[i]);

        //theinputs[i] = malloc((length + 1) * (sizeof(char)));
        strcpy(theinputs[i - 1], argv[i]);
        if ( isdigit(*theinputs[i-1]) ) {
            printf("Input %d is good\n", i);
        }
        else {
            printf("One or more of your inputs is not an integer %s.\n", theinputs[i]);
            //return -1; //Inputs are not being read correctly
            exit(0);
        }
        numbers[i] = atoi(theinputs[i]);
    }

    for (i = 0; i < 2; i++) {
        printf("%d\n", numbers[i]);
    }

0 个答案:

没有答案