我正在创建一个链接列表,然后将其写入文件并再次读取。我正在使用 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);
虽然我暂时只阅读了一个实例,但它仍然无法正常工作。没有任何内容存储在 temp->name 中,0 存储在 temp->roll_num 中。我坚持了最后4个小时。我可以通过单独存储结构元素来做到这一点,但这次我想用不同的方式来做。
对于所有重要的人来说,这是一个家庭作业问题。
任何帮助将不胜感激。谢谢 :)