我是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;
答案 0 :(得分:2)
假设您在读取结构时没有问题(例如,您保存了包含大小为4bytes的int
的结构,并尝试在int
大小不同的机器上读取等等 - )文件大小(以字节为单位) - 并除以结构的大小。