| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1681 人关注过本帖
标题:求教!将链表写入文件中,并从文件中读取。我自己的代码贴上了,文件部分写 ...
只看楼主 加入收藏
Fantabulous
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2017-7-12
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
求教!将链表写入文件中,并从文件中读取。我自己的代码贴上了,文件部分写的有问题,请大神们帮忙看看!感谢!
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
#include<iomanip>
#include<string.h>
#define N 30
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef struct
{
    char num[10];     //套餐编号
}TaoCan;
typedef struct LNode
{
    TaoCan *data;
    LNode *next;
}LNode,*LinkList;
Status InitList(LinkList &L)
{
    L=new LNode;
    L->next=NULL;
    return OK;
}

void save(LinkList &p);
void load(LinkList &P);
void CreatList(LinkList &L,int n);

int main()
{
    LinkList L,p;
    InitList(L);
    int n;
    p=L;
    cout<<"请输入套餐数:";  cin>>n;
    CreatList(L,n);
    save(p);
    load(p);
    return 0;
}

void save(LinkList &p)
{
    FILE *fp;
    if((fp=fopen("f:\\dx.txt","ab+"))==NULL)
    {
        printf("open fail\n");
        exit(0);        
    }
    fseek(fp,0,SEEK_END);
    while(p)
    {
        if(fwrite(p,sizeof(struct LNode),1,fp)!=1)
        {
            printf("file write error\n");
            exit(0);
        }
        p=p->next;
    }
    fclose(fp);
}

void load(LinkList &p)
{
    FILE *fp;
    int i;
    if((fp=fopen("f:\\dx.txt","rb"))==NULL)  
    {
        printf("open fail\n");
        exit(0);      
    }
    while(p)
    {
        if(fread(p,sizeof(struct LNode),1,fp)!=1)
        {
            printf("file write error\n");
            exit(0);
        }
        cout<<"套餐编号: "<<p->data->num<<endl;
        p=p->next;
    }
    fclose(fp);
}
void CreatList(LinkList &L,int n)
{
    L=new LNode;
    L->next=NULL;
    LinkList p;
    int i;
    for(i=0;i<n;i++)
    {
        p=new LNode;
        cout<<"请输入套餐编号: "; cin>>p->data->num;
        p->next=L->next;L->next=p;
    }
}
搜索更多相关主题的帖子: 文件 include int next void 
2017-07-16 23:10
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:20 
存取的是 LNode 数据:
    TaoCan *data; 地址
    LNode *next;  地址
实际数据应该是在 TaoCan 的 num 成员。
2017-07-17 06:31
Fantabulous
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2017-7-12
收藏
得分:0 
回复 2楼 吹水佬
您的意思是文件的写入要传入实际数据L->next->num的值吧
能提供段save()写入文件的代码吗,尝试了很多种都不行,感谢回复。
2017-07-17 09:06
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
按TaoCan结构读写文件
2017-07-17 10:43
Fantabulous
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2017-7-12
收藏
得分:0 
回复 4楼 吹水佬
非常感谢此问题已解决
2017-07-17 14:37
快速回复:求教!将链表写入文件中,并从文件中读取。我自己的代码贴上了,文件部 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016475 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved