我是C編程的新手,我想從bin寫入元素。文件放入dinamically alocated陣列。問題是我不知道有多少元素(1元素是用戶定義的結構)該文件,所以我不知道如何分配arry從文件放置這些元素。獲取文件中元素的數量
我不知道如果我解釋得很好,我有一個文件「students.txt」(我仍然想用它作爲二進制文件),它由N個學生組成。 現在我想讀一個dinamicaly分配的數組學生。 問題是我不知道一種方法來查找文件中的學生數量,以便爲該數量的學生分配數組中的內存。
那麼是否有任何函數從文件返回sertian類型的元素數?
我知道
int fread(void *array, int size, int count, FILE *dat);
返回元素數目,但我還需要指定數組,其中的文件將要寫入和我沒有這個數組分配還沒有。 對不起,如果我這樣做太複雜了,我希望你能理解我的問題,對於工程師不好意思。這不是我的母語。
的struct
的定義:
typedef struct
{
char indeks[8];
char ime[21];
char prezime[21];
double prosjek;
} STUDENT;
對於這樣的情況,您不一定需要事先知道元素的數量。一般的方法是使用動態內存分配('malloc'和/或'realloc')。這樣你可以根據需要增加你的數組(或者根據你的需求使用類似鏈表的東西)。 – kaylum
請發佈*學生*的定義。 –
或者,如果您確實需要知道元素的數量並且結構是固定大小,則文件中沒有其他內容,並且您信任文件的完整性,則可以獲取文件大小並按結構(二進制)大小進行劃分。 – kaylum