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

Accepting Integer Array from Command Line - C Programming

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

目前我有:

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

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

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

然后解析这个?我不确定如何在 C 中将字符转换为整数。

谢谢,

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

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;
}