使用scanf在C中输入动态长度数组

时间:2019-01-21 00:23:18

标签: c arrays input stdio

我必须输入一个整数数组。数组的长度是在运行时确定的,即用户敲击了一些小键盘键(可能我将使用return)

示例

//input path to be analyzed
  int n = 0;
  while(scanf("%d",&input[n])==1){
    //??
  }
}

输入:

3 2 1 3 4 5(返回)

然后将这些值存储为数组a:

[3,2,1,3,4,5]

我当然也需要适当的错误检查。

我肯定这是一个基本问题,但是我无法解决。

谢谢!

我认为我需要一个while循环,但是不确定如何使用scanf终止循环,初始化数组并输入值。

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

int main()
{
    char ch;
    int i=0;
    int input[100000]; //Or dynamically allocate
    while(scanf("%c",&ch) && (ch!='\n')){
    if(ch==' ') continue;
    input[i++]=ch - '0';
    printf("%d ",input[(i-1)]);
}
}