在 C 中计算传递给 scanf() 的参数

Counting arguments passed to scanf() in C

有什么方法可以计算在 C 中传递给 scanf() 的参数数量吗?特别是,在通过 scanf() 分配 int 数组时。 示例:

int array[1000], i;
for(i=0;i<1000;i++)
    scanf("%d",&array[i]);

我需要计算用户插入了多少个值

我认为没有内置的方法可以做到这一点,但为什么不创建一个在 scanf returns 成功时递增的计数器,否则就中断循环?

int scanf_counter = 0;
int array[1000], i;

for(i=0;i<1000;i++) {

    if(scanf("%d",&array[i] > 0) {
        scanf_counter++;
    } else {
        break;
    }

}

虽然我不确定我是否完全理解你的问题,因为你总是可以通过这样做找到数组的大小

int size = sizeof(array)/sizeof(array[0])

仔细查看 scanf() 片段,因此:

包括

int main()

{ 双 a[100000],mx=0;

int i,j,c=0;
printf("Enter as many numbers as you wish . Press Ctrl+D or any character to stop inputting :\n");  

for(i=0;i<100000;i++)

{
    if((scanf("%lf",&a[i]))==1)

        c++;

    //else break;

}

for(j=0;j<c;j++)

{
    if(a[j]>mx) mx=a[j];
}

printf("You have inserted %d values and the maximum is:%g",c,mx);


return 0;

}