c-我如何用fread阅读列表



这可能吗,这里出了什么问题!?

我需要这个来阅读";项目";其属于"0"的一个节点内;Orcamento";,以及";decisores";。

int lerDadosO(DLLIST3 *orcamentos) {
int nOrcamentos = 0, i = 0;
ORCAMENTO Orcamento;
FILE *ficheiro = fopen("dadosO.bin", "rb");
if(ficheiro != NULL) {
fseek(ficheiro, 0L, SEEK_END);
nOrcamentos = ftell(ficheiro) / sizeof(ORCAMENTO);
rewind(ficheiro);
while (i != nOrcamentos) {
Orcamento.itens = createI();
Orcamento.decisores = createU();
fread(&Orcamento, sizeof(ORCAMENTO), 1, ficheiro);
//            viewI(Orcamento.itens, listarItem);
if(insertendO(orcamentos, Orcamento) != 0) {
printf("Ocorreu um Erro!");
return 0;
}
i++;
}
fclose(ficheiro);
}
else {
printf("Não existe nenhum ficheiro binário!");
}
return nOrcamentos;
}

我不确定您是如何实现列表系统的,这可能是通过先将数据读取到缓冲区,然后将其转换为";列表";

struct record {
int field0
int field1;
};
int main(void) {
// variables
FILE *stream;               // reading data
struct record data[length]; // writing data
struct mylisttype *list;    // result
...
// read `length` `struct record`s from `stream`
fread(data, sizeof(struct record), length, stream);
listfrombuffer(buffer, list);
...
}

相关内容

  • 没有找到相关文章

最新更新