使用 scanf 在 C 中输入一个动态长度数组
Input a dynamic length array in C using scanf
我必须输入一个整数数组。这个数组的长度是在运行时当用户点击一些关键键时确定的(我可能会使用 return)
例子
//input path to be analyzed
int n = 0;
while(scanf("%d",&input[n])==1){
//??
}
}
输入:
3 2 1 3 4 5 (return)
然后将这些值存储在数组a中为:
[3, 2, 1, 3, 4, 5]
当然我还需要适当的错误检查。
我确定这是一个基本问题,但我无法解决它。
谢谢!
我认为我需要一个 while 循环,但是我不确定如何使用 scanf 来终止循环、初始化数组和输入值。
您可以按照以下方式进行:
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)]);
}
}
我必须输入一个整数数组。这个数组的长度是在运行时当用户点击一些关键键时确定的(我可能会使用 return)
例子
//input path to be analyzed
int n = 0;
while(scanf("%d",&input[n])==1){
//??
}
}
输入:
3 2 1 3 4 5 (return)
然后将这些值存储在数组a中为:
[3, 2, 1, 3, 4, 5]
当然我还需要适当的错误检查。
我确定这是一个基本问题,但我无法解决它。
谢谢!
我认为我需要一个 while 循环,但是我不确定如何使用 scanf 来终止循环、初始化数组和输入值。
您可以按照以下方式进行:
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)]);
}
}