在txt文件中写入LinkedList的内容。

时间:2016-04-23 18:18:44

标签: c++

所以我有以下代码,其中打印出链表的内容,但是我试图将其写入文件中。我成功读取了一个文件并创建了链接列表,但现在我陷入了如何将其写回另一个文件的问题。

void LinkedList::printAll()
{
    if(p==NULL)
    {
        cout<<"There are no nodes in the list"<<endl;
        return;
    }
    else
    {
        Node *tmp = p;
        cout<<endl<< "RUID    Name"<<endl;

        while(tmp!=NULL)
        {
            cout <<tmp->ID <<"\t"<<tmp->name<<endl;
            tmp=tmp->next;
        }
    }
    cout<<endl;
}

这就是我尝试在文件中写入而不是打印出来的内容。任何帮助都会很精彩。

这应该是什么样子

RUID名称 4325奥马尔 5432 Partha 6530 Rani 1034 Esha 2309拉纳 3214 Badri

1 个答案:

答案 0 :(得分:3)

您需要做的就是将您从cout写入的输出流更改为文件流。

更好地处理printAll函数的方法是这样的:

#include <ostream>
//...
void LinkedList::printAll(std::ostream& os)
{
    if(p==NULL)
    {
        os<<"There are no nodes in the list"<<endl;
        return;
    }
    else
    {
        Node *tmp = p;
        os<<endl<< "RUID    Name"<<endl;

        while(tmp!=NULL)
        {
            os <<tmp->ID <<"\t"<<tmp->name<<endl;
            tmp=tmp->next;
        }
    }
    os<<endl;
}

然后,如果我们想打印到控制台:

LinkedList t;
//...
t.printAll(cout);

并打印到文件:

LinkedList t;
//...
std::ofstream ofs("myfile.txt");
t.printAll(ofs);