在C ++中从文件读取到节点

时间:2014-03-04 00:42:58

标签: c++ pointers readfile

我正在尝试从文件中读取单词和数字,并将它们插入到Node结构中。 有一个文件,其中包括StudentNames和StudentNumbers。 我已经创建了一个结构:

struct Node
{
    string Name;
    int Number;
    Node *next;

    Node::Node(){}

    Node::Node(string ID, int No):Name(ID), Number(No){}
};  

我正在尝试在创建Node时将Names和Numbers直接放到Node上。

string filename, line,names;
int nos;
cout<<"Enter Filename: ";
cin >> filename;
ifstream input(filename);

if(input.fail())
{
    cout<<"\n FAILED TO OPEN FILE";
}

else
{
    getline(input, line);
    stringstream  word;
    word>>names
    word>>nos


    Node *p;
    p=new Node(names,nos);
    cout<<p->Name<<p->Number;
}

我的逻辑是它将单词读入名称,因为它们是字符串,它将数字部分读入nos,因为nos是int,它不接受字符串只有整数。但是它没有名字,而且nos仍然像“idk一样”。

这基本上就是我想要做的。我需要使用包含名称和数字的theese节点创建链接列表。

另一个问题是我没有得到* next指向下一个节点的方式。

对不起,如果它令人困惑,但我也很困惑:))

输入文件示例

L0RDQB  12345
LordQb  23456
...

1 个答案:

答案 0 :(得分:0)

Node创建第二个接受istream

的构造函数
Node::Node(istream &is) { is >> Name >> Number; }

我会将eof检测作为练习留给读者。