从命令行接受整数数组 - C编程

时间:2016-04-11 18:17:28

标签: c arrays command

我需要从命令行接受一个整数数组,例如: ./test 2 9 -5 17

目前我有:

int main(int argc, int *argv[])

然后循环查找此数组中的两个数字,从argv [1]开始创建最大值。显然这不起作用。我是否需要它:

int main(int argc, char *argv[])

然后解析这个?我不知道如何将字符转换为C中的整数。

谢谢,

2 个答案:

答案 0 :(得分:1)

使用strtol()将每个argv [i](对于i从1开始)转换为long int。

答案 1 :(得分:0)

int main(int argc, char *argv[])
{
    size_t i;
    int n;

    for (i = 0; i < argc; ++i) {
        if (sscanf(argv[i], "%d", &n) == 0) {
            fprintf(stderr, "Position %d is not an int\n", i + 1);
            return 1;
        }
        printf("%d\n", n);
    }

    return 0;
}