c - 获取文件中元素的数量

标签 c arrays file-io

我是 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/

相关文章:

c++ - 在 OpenCV 中读取嵌套的 XML

c - 从文件数据打印星号

c - 三重指针和内存分配

objective-c - 计算垂直于另一条线的中点的线

python - 在 Python 数组的索引之间搜索值

c - 选择排序不排序

c++ - 如何引用结构变量并使用或不使用指针进行初始化

c - 有没有人知道以下代码可能做什么?

c++ - 要释放动态数组初始化时程序崩溃

Python的读写add\x00到文件