转换为整数后,只打印1而不是所有参数

时间:2014-09-11 15:20:47

标签: c integer

那么如何将str_to_int值添加到[](数组)?所以我可以在另一个函数中使用[]来获得平均值。

只是忽略大小。对于size,只是在命令行中输入了多少个值。

./a.out 5 2 3 

哪个是3。

3 个答案:

答案 0 :(得分:2)

您只传递argv[1],它将是您示例中包含"4"的单个字符串。不确定为什么你希望以某种方式跨过数组argv

此外,您不能合法拥有名称以str开头的函数,名称空间是保留的。

答案 1 :(得分:1)

你需要遍历argv:

int main(int argc, char *argv[]) {
  int sum = 0;
  printf("INT[]: ");
  for (int i=1; i<argc; i++) {
    char *array = argv[i];
    sum += strToInt(array);
    printf("%s ", array);
  }
  printf("\n sum: %d\n",sum);
}

答案 2 :(得分:0)

如上所述,您需要循环argv。另请注意,您致电strToInt()的结果未使用。你是说这个吗?

int main(int argc, char *argv[])
{
      printf("INT[]: ");
      int i, sum = 0;
      for (i = 1; i < argc; i++) 
      {
        char *array = argv[i];
        int n = strToInt(array);
        sum += n;
        printf("%d ", n);
      }
      printf("\n");
      printf("sum = %d", sum);
    }
}