C++文件读取到链表的问题,怎么改

C++文件读取到链表的问题,怎么改

#include
using namespace std;
struct Plant
{
    //植物信息定义
    string name;                                        //植物名称
    string sname;                                        //学名
    string place[100];                                    //分布地
    string detail;                                        //详情描述
};

typedef struct LNode
{
    Plant data;           //结点的数据域
    struct LNode *next; //指针域
} LNode,*LinkList;

void ReadFile(LinkList &L, string filename)
{
    //从文件中读取数据,存入链表L中
    ifstream infile;
    infile.open(filename.c_str());//打开文件
    string line;
    LinkList p=L;
    while(getline(infile,line))
    {
        //读取一行植物数据
        Plant temp;
        stringstream ss(line);
        string s;
        int flag=0;
        while(getline(ss,s,'#'))
        {
            cout<if(flag==0) temp.name=s;
            if(flag==1) temp.sname=s;
            if(flag==2)
            {
                stringstream ssplace(s);
                string place;
                int placenum=0;
                while(getline(ssplace,place,'@'))
                {
                    temp.place[placenum]=place;
                    placenum++;
                }
            }
            if(flag==3) temp.detail=s;
            flag++;
        }
    //    L->data=temp;
    //    L=L->next;
    }
    //L=NULL;
    //L=p;
}

int exam(LinkList L,string name)
{
    //判断该植物名称name是否存在于plant.txt中
    LinkList p=L;
    //InitList(p);
    //p=L;
    //LNode *p=L;
    if(p==NULL) cout<<"链表为NULL"<else cout<<"链表不为NULL"<int flag=0;
    while (p!=NULL)
    {
        cout<data.name<if (p->data.name == name)
        {
            flag=1;
            return flag;
        }
        p = p->next;
    }
    return flag;
}

bool Insert(LinkList &L, string filename)
{
    //增加植物信息,输入植物的名称、学名、分布地和详情描述信息,将该植物的基本信息添加到plant.txt中的最后
    //如果该植物名称存在于plant.txt中,返回false,否则,返回true
    
    
    
    
}

void InitList(LinkList &L)
{
    //构造一个空的单链表L
    L=new LNode;
    L->next=NULL;
}

void check(string filename)
{
    //读取文件最后一行内容,即新增植物信息
    ifstream infile;
    infile.open(filename.c_str());                            //打开文件
    string line, last_line;
    while (getline(infile, line))
    {
        last_line = line;
    }
    cout << last_line << endl;
    infile.close();
}

int main()
{
    LinkList L;
    string filename1="plant.txt";      //每次从plant.txt中读取数据,不保存之前新增的数据
    string filename2="data_edit/plant.txt";
    InitList(L);
    //读plant.txt文件
    ReadFile(L,filename1);
    
    string Pname="二色补血草";
    if(exam(L,Pname))
    {
        cout<"is in the linked list"<else
    {
        cout<"is not in the linked list"<//if(Insert(L,filename2))
        //check(filename2);
    //else
        //cout<<"增加失败\n";
    return 0;
}

plant.txt

二色补血草#Limonium bicolor#江苏@辽宁@黑龙江@吉林#多年生草本,高20-50厘米
珊瑚补血草#Limonium coralloides#新疆#多年生草本,高25-50厘米

你的链表是不是只创建了一个结点?