【发布时间】:2014-03-10 10:00:29
【问题描述】:
struct book
{
unsigned short size_of_content;
unsigned short price;
unsigned char *content;
};
假设我有一个包含多个books 的文件,每个都有不同的size_of_content、price 和content。我如何一次阅读一本book 并确定它是哪本书(例如查看价格)?
size_t nread2;
struct book *buff = malloc(sizeof(struct book));
while( (nread2 = fread(buff, sizeof(struct book), 1, infp)) > 0 )
{
printf("read a struct once \n");
}
这是我目前所拥有的。每当我阅读结构时,我都会尝试打印。但是,当我尝试使用 5 个结构的输入文件时,它会打印 15 次...
谢谢。
【问题讨论】:
-
您尝试读取的文件格式是什么?
-
@Maxpm 可以是任何东西,但我拥有的测试文件是一个 bin 文件。
-
读懂写文件的函数,你就知道怎么读了。
-
考虑为此使用外部库,例如 sqlite。
-
这对我来说似乎是一个家庭作业问题。如果是这样,SQLite 不太可能有帮助......文件格式将是家庭作业的一部分。如果这是一个实际问题,那么请使用 SQLite 或其他一些库。