我试图通过链接列表进行归档。我想要做的是将我的文本文件中的每个单词放在一个新节点上,但是这个程序将所有单词放在一个节点上。例如,如果我的文本文件有一行 "我的名字是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();
}
答案 0 :(得分:2)
因为你使用getline。 getline每行读取您的文本,而不是每个单词。相反,您可以使用输入流来执行此操作。
infile >> myString;
它会读取每个单词,假设您想要按空格分割...