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

标签 c arrays count arguments scanf

有没有办法计算 C 语言中传递给 scanf() 的参数数量?特别是,通过 scanf() 分配 int 数组时。 示例:

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

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

最佳答案

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

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])

关于在 C 中计算传递给 scanf() 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28587066/

相关文章:

c# - 来自字典 C# 的数组

mysql - LEFT JOIN 与 COUNT 出现错误

c++ - 存储动态长度数据 'inside' 结构

c - time(NULL) 在 PIC-IoT WG 开发板上返回 0

c - 二维数组打印错误

arrays - 如何使用递归函数构造 id/parentIds

c - 递归算法的时间复杂度

arrays - Ruby 数组上的未定义方法 'to_h'

C# 计算循环中传递的数字数量

mysql - 查找字符串 mySQL 中匹配表达式的数量