リンクされたリストを作成してからファイルに書き込み、再度読み取ります。fwrite と fread を使用して、一度に構造体のインスタンス全体を読み書きしています。しかし問題は、それが正しく機能していないことです。出力ファイルを見た後、書き込みは正常に機能していると思いますが、まだよくわかりません。しかし、読書はまったく機能していません。
以下は構造です
struct student
{
int roll_num;
char name[100];
struct student *next;
};
以下はロジックです
ifd = fopen("qwer1234.txt","wb");
struct student *temp;
temp = start;
while(temp != NULL)
{
fwrite(temp, sizeof(struct student), 1, ifd);
temp = temp->next;
}
close(ifd);
ifd = fopen("qwer1234.txt","rb");
temp = NULL;
temp = malloc(sizeof(struct student));
fread(temp, sizeof(struct student), 1, ifd);
start = temp;
//temp->next = NULL;
printf("%s\t%d\n",temp->name,temp->roll_num);
temp = malloc(sizeof(struct student));
/*while(fread(temp, sizeof(struct student), 1, ifd) == 1)
{
temp->next = start;
start = temp;
printf("%d/n",temp->roll_num);
temp = malloc(sizeof(struct student));
}*/
close(ifd);
当分の間、1 つのインスタンスしか読み取っていませんが、まだ機能していません。temp->name には何も格納されず、temp->roll_num には 0 が格納されます。私は過去4時間それに立ち往生しています。構造体の要素を個別に格納することで実現できますが、今回は別の方法で実現したいと考えました。
そして、それが重要なすべての人にとって、これは宿題の質問です.
どんな助けでも大歓迎です。ありがとう :)