.txt文件到链接列表



我目前正在尝试打开一个.txt文件,逐行读取该文件,然后逐段读取到节点中相应的数据类型中。

我在这方面遇到了麻烦,因为每次我试图打印出列表时,它都只是一遍又一遍地打印第四个条目行的一部分和第五个条目行。

有人能看看我的代码,告诉我发生了什么吗?提供任何见解和帮助?

#include <iostream>
#include <string>
#include <fstream>
#include <cstdlib>
#include <vector>
#include <cstdlib>
using namespace std;

struct nodeinfo{
string prob_id; 
string idnum;
string prob_name;
string probname;
string diffl;
string diff;
nodeinfo *next;
}; 


int main()
{
//node ppointers
nodeinfo * current;//nod head pointer that will point to something
nodeinfo * head; //node current pointer that will point to a new node
nodeinfo * temp ; //node temp pointer that will point to the same node that current is pointing too
current = new nodeinfo;
temp = current;
head = current;

//to bring in filename and open it
ifstream infilename;
infilename.open("input21.txt");
string line;
while (infilename)
{
getline(infilename, line, ':');
infilename >> current ->prob_id;
getline(infilename, line, ',');
infilename>>current->idnum;
getline(infilename, line, ':');
infilename >> current->prob_name;
getline(infilename, line, ',');
infilename >> current->probname;
getline(infilename, line, ':');
infilename>>current->diffl;
getline(infilename, line);
infilename >>current->diff;
temp -> next = current;
temp = temp->next;
}

current->next =NULL;

while (current!=NULL)
{
cout << current->prob_id <<current->probname<<
current->diff<<endl;
}
}

这是input21.txt文件:

  1. problem_id:321038,problem_name:二进制搜索树到大和树,难度:中等

  2. problem_id:580101,problem_name:最短未排序连续子阵列,难度:简易

  3. problem_id:297978,problem_name:查找数组中消失的所有数字,难度:简易

  4. problem_id:123297,problem_name:序列化和反序列化二进制树,难度:硬

  5. problem_id:297985,problem_name:验证二进制搜索树,难度:中等

其中每一个都是一行。

我想检查一下,看看我是否将这个文件翻译成一个链接列表,然后我想打印它,以确保它在那里,以便以后进行操作。

请不要花里胡哨,保持简单。谢谢

所以问题很简单,如果你想创建一个包含五个项目的列表(文件中每行一个(,那么你需要分配五个节点。但是您的代码只分配一个节点。每次循环时都需要分配一个节点。

相关内容

  • 没有找到相关文章

最新更新