链表先是读取了文件内容,然后对链表中某部分进行修改,修改后的链表如何对链表如何重新写入文件中
答案:2 悬赏:80 手机版
解决时间 2021-03-15 15:58
- 提问者网友:记得曾经
- 2021-03-15 09:11
我得不到修改后完整的链表头指针
最佳答案
- 五星知识达人网友:骨子里都是戏
- 2021-03-15 09:31
看你的链表在文件中是什么形式的存在了, 读取与写入的过程是一样的。
struct node { char data[DATASIZE]; struct node *next;};struct node *read_list_from_file(const char *filename){ struct node *pnode = NULL; static struct node *head = pnode; FILE *fp = fopen(filename, "r"); if (!fp) return NULL; while (!feof(fp)) { if (pnode) { pnode = pnode->next; } pnode = calloc(1, sizeof(struct node)); fread(pnode->data, 1, sizeof(pnode->data), fp); } fclose(fp); return head;}void write_list_to_file(struct node *head, char filename){ struct node *tmp = head; FILE *fp = fopen(filename, "w"); if (!fp) return; while (!tmp) { fwrite(tmp->data, 1, sizeof(tmp->data), fp); tmp = tmp->next; } fclose(fp);}
struct node { char data[DATASIZE]; struct node *next;};struct node *read_list_from_file(const char *filename){ struct node *pnode = NULL; static struct node *head = pnode; FILE *fp = fopen(filename, "r"); if (!fp) return NULL; while (!feof(fp)) { if (pnode) { pnode = pnode->next; } pnode = calloc(1, sizeof(struct node)); fread(pnode->data, 1, sizeof(pnode->data), fp); } fclose(fp); return head;}void write_list_to_file(struct node *head, char filename){ struct node *tmp = head; FILE *fp = fopen(filename, "w"); if (!fp) return; while (!tmp) { fwrite(tmp->data, 1, sizeof(tmp->data), fp); tmp = tmp->next; } fclose(fp);}
全部回答
- 1楼网友:三千妖杀
- 2021-03-15 10:52
支持一下感觉挺不错的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯