我是 C 编程的新手,我想从 bin 中编写元素。文件到动态分配的数组中。问题是我不知道该文件有多少元素(1 个元素是用户定义的结构),所以我不知道如何分配 arry 来放置文件中的这些元素。
不知道我解释的对不对,我有一个文件“students.txt”(我还是想用它作为二进制文件),它由N个学生组成。 现在我想读学生到一个动态分配的数组。 问题是我不知道如何找到文件中的学生数量,以便为该数量的学生分配数组中的内存。
那么有没有函数可以从文件中返回 sertian 类型元素的数量?
我知道
int fread(void *array, int size, int count, FILE *dat);
返回元素的数量,但我还需要指定要写入文件的数组,我还没有分配该数组。 对不起,如果我把这个弄得太复杂了,我希望你能理解我的问题,对 eng 感到抱歉。这不是我的母语。
struct
的定义:
typedef struct
{
char indeks[8];
char ime[21];
char prezime[21];
double prosjek;
} STUDENT;
最佳答案
假设您在读取结构时不会遇到问题(例如,您保存了包含大小为 4 字节的 int
的结构,并尝试在 int
大小不同的机器上读取,等)- 只需获取文件大小(以字节为单位)- 并划分结构的大小。
关于c - 获取文件中元素的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29735728/