まず、申し訳ありませんが、この質問が多く寄せられることは承知しています。私はいくつかのアンサーを読みましたが、まだ動作するコードを書くことができていません。これは私の基本的なループですが、最後のノードしか読み取らないので、何が間違っていますか?
ありがとう。
これはグローバルです:
struct Inventory
{
int cod;
int quant;
float price;
char name[30];
struct Inventory *next;
};
struct Inventory *inventory = NULL;
読み取る関数です。
void load(void)
{
FILE *ptr;
ptr=fopen("inventory.dat", "rb+");
if (!ptr)
{
return;
}
struct Inventory *p;
while(!feof(ptr))
{
p = malloc(sizeof(struct Inventory));
fread(p, sizeof(struct Inventory), 1, ptr);
p->next = inventory;
inventory = p;
}
fclose(ptr);
}