在链表c ++中归档

时间:2015-11-22 06:10:30

标签: c++ linked-list file-handling

我试图通过链接列表进行归档。我想要做的是将我的文本文件中的每个单词放在一个新节点上,但是这个程序将所有单词放在一个节点上。例如,如果我的文本文件有一行 "我的名字是ahsan" ,那么它的输出应该是:

名称

阿赫桑

当我的程序按原样打印此行时。

#include <iostream>
#include<fstream>
using namespace std;

class node
{
public:
string data;
node*next;
};

class mylist
{ 
public:
node*head;
mylist()
{
    head=NULL;
}
void insertion(string item)
{
    node* temp= new node;
    temp->data=item;
    temp->next=NULL;
    temp->next=head;
    head=temp;
}
void print()
{
    node*ptr;
    if(head==NULL)
    {
        cout<<"List empty :"<<endl;
        return;
    }
    else
    {
        ptr=head;
        while(ptr!=NULL)
        {
            cout<<ptr->data<<endl<<endl;
            ptr=ptr->next;
        }
    }
 }
 };

int main()
{
ofstream myfile;
ifstream infile;
string mystring;
mylist l;

//  myfile.open ("ahsan.txt");
//  myfile << "Ahsan's first file.\n";
//  myfile.close();
string lol;
infile.open("ahsan.txt");
while(!infile.eof())
{
    getline(infile,lol);
    l.insertion(lol);
}

l.print();
infile.close();

}

1 个答案:

答案 0 :(得分:2)

因为你使用getline。 getline每行读取您的文本,而不是每个单词。相反,您可以使用输入流来执行此操作。

infile >> myString;

它会读取每个单词,假设您想要按空格分割...