我是新来的,我需要一些帮助。 :)
我正在开发一个必须写入和读取二进制文件的程序。我必须向其中添加讲座,它们看起来像:
COURSECODE;COURSENAME;MAXAPPLICANTS;ACTUALAPPLICANTS;
我可以使用 char*
毫无问题地将其写入文件。
我的问题是:如果记录的大小不固定,我如何在结构中读回它? (例如:coursename可以是Linear Algebra or Analysis -> length is non-determined)我还需要修改实际申请人数,如何找到它的字符位置,以及当前行?
我对想法很满意,我也很欣赏任何源代码,我用 C++ 编程,而 C 对我来说是一个艰难的退步。
提前致谢!
最佳答案
你的结构看起来像
struct student {
char *coursecode;
char *coursename;
char *max_applicants;
char *actual_applicants;
};
只需将另一个成员添加到您的结构中,比如存储结构总大小的 int size
。
每次当你从二进制文件中读取时,你应该首先读取 4 个字节
你会得到记录的完整大小,然后查看记录中有多少字符,读取那么多并通过 ;
你会找到你的记录。
关于c - 从二进制文件中读取非固定长度(C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15242800/