如何在c ++中将包含指针变量的对象写入和读取到文件中?请使用以下代码帮助我

时间:2016-02-02 03:48:46

标签: c++ pointers serialization fstream

#include<iostream.h>
#include<conio.h>
#include<fstream.h>

struct node     /*node for info along with pointer variable*/
{
   char name[20];
   int n;
   node *next;
};

class info
{
   node *head,*tail;
   public:
   info();
   void insert();
   void display();
};

info::info()
{
   head=NULL;
   tail=NULL;
}

void info::insert()
{
   node *New;
   New=new node;
   cout<<"\nEnter the name and integer:";
   cin>>New->name>>New->n;
   New->next=NULL;
   if(head==NULL)
      head=tail=New;
   else
   {
      tail->next=New;
      tail=tail->next;
   }
}

void info::display()
{
   node *temp;
   temp=head;
   while(temp!=NULL)
   {
      cout<<"\nName:"<<temp->name<<" integer "<<temp->n;
      temp=temp->next;
   }
}

int main()
{
   info list1;
   clrscr();
   int ch;
   do
   {
      cout<<"\n1.insert 2.display 3.exit";
      cout<<"\nEnter choice:";
      cin>>ch;
      switch(ch)
      {
         case 1:
            cout<<"\nEnter the file name:";
            char *fn1;
            cin>>fn1;
            ofstream out(fn1,ios::binary);
            list1.insert();
            out.write((char *)&list1,sizeof(list1));
            out.close();
            break;
         case 2:
            cout<<"\nEnter the file name:";
            char *fn2;
            cin>>fn2;
            ifstream in(fn2,ios::binary);
            in.read((char*)&list1,sizeof(list1));
            list1.display();
            in.close();
            break;
      }
   }while(ch!=3);
   return 0;
}

在上面的代码中,我使用了&#34; * head&#34;和&#34; *尾巴&#34;构建队列的指针变量。问题是如何将信息写入文件并读取 文件中的信息? 代码运行它没有正常运行。

1 个答案:

答案 0 :(得分:0)

帮助你的东西。

保存并恢复一个对象

node n1;
strcpy(n1.name, "Sai Charan");
n1.n = 10;

考虑保存到文件所需的内容,以便能够将文件中的数据还原到另一个node

保存并恢复vector<node>

std::vector<node> nodes;

// Add couple of node objects to node.

考虑保存到文件所需的内容,以便能够将文件中的数据还原到另一个vector<node>

现在将相同的逻辑应用于info

这应该为您提供足够的背景资料,以便能够保存和恢复node对象中info的链接列表。