我有一个文件,我必须读取一些数字并将它们放入数组中。唯一的问题是我不知道如何找到它的大小。我给了数组的最大大小,但数字不能完全填充数组。我尝试了许多不同的方法来使其工作,但它并没有从文件中读取正确的值。有没有其他的方式来做到这一点没有sizeof?从文件中检索数组并找到它的大小C
#include<stdio.h>
#define MAX_NUMBER 25
int main(void)
{
int test[];
int size;
FILE* sp_input;
int i;
sp_input = fopen("a20.dat", "r");
if (sp_input == NULL)
printf("\nUnable to open the file a20.dat\n");
else
{
while(fscanf(sp_input, "%d", &test[i])!=EOF)
{
size=sizeof(test)/sizeof(test[0]);
}
for(i = 0; i < size; i++)
printf("\na[%d]=%d has a size of %d\n", i,test[i],size);
fclose(sp_input);
}
return 0;
}
“i”未初始化,永远不会改变while循环中的值。 –
如果'size'应该是数组中有多少个数字,那么为什么不从0开始并为每个读取的数字增加? – Dmitri
此外,您还需要给出'test'的元素数量,例如。 'int test [MAX_NUMBER];' - 该数组总是会有最大数量的元素,但是您可以通过'size'跟踪您实际使用的元素数量。 – Dmitri