我有一個文件,我必須讀取一些數字並將它們放入數組中。唯一的問題是我不知道如何找到它的大小。我給了數組的最大大小,但數字不能完全填充數組。我嘗試了許多不同的方法來使其工作,但它並沒有從文件中讀取正確的值。有沒有其他的方式來做到這一點沒有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