从命令行接受整数数组 - 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;
}
我需要从命令行接受一个整数数组,例如: ./测试 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;
}