2016-04-04 48 views
0

因此我理解使用while循环逐行读取文本文件的基本概念,现在我的问题是如何读取每一行然后将这些行的内容放入变量是结构的一部分吗?从文本中读取行然后复制到结构中

我想出如何我的文字写入文件而不是如何存储从同样的文件,所以这里的信息是什么,我有这么远,但它似乎没有工作:

这工作:

void save(string fileName) 
{ 
    Container *traverser = list; 
    ofstream file; 
    file.open(fileName); 

    while (traverser != NULL){ 
     file << traverser->student->getFirstName() << endl; 
     file << traverser->student->getLastName() << endl; 
     file << traverser->student->getGrade() << endl; 
     file << traverser->student->getEdu() << endl; 
     traverser = traverser->next; 
    } 
} 

这不:

void load(string fileName) 
{ 
    Container *traverser; 
    Container* c; 
    Student *s; 
    string fname, lname; 
    int grade; 
    int edu; 
    ifstream file; 
    file.open(fileName); 
    string line; 

    while (getline(file, line)){ 
     file >> fname; 
     file >> lname; 
     file >> grade; 
     file >> edu; 
     s = new Student(fname, lname, grade, edu); 
     c = new Container(); 
     c->student = s; 
    } 
} 

有什么事情的智慧h我的语法还是我一起做错了?

该程序实质上是要求学生的名字,姓氏,年级和教育,然后将它存储到一个文本文件,然后它应该从文本文件加载信息回到程序(我没有发布整个代码,因为有很多)。

谢谢!

附加信息:列表是结构的(学生)链表

+0

这个功课?那就是说你不能使用标准容器,比如'vector'或'list'? – user657267

+0

你读了一行,然后从文件流中解析更多东西?当然你不想用stringstream来解析这一行吗? – Maikel

+0

你不需要getline。使用while(文件>> fname >> lname >>等级>> edu)... – ZDF

回答

0

我怀疑你的数据在一个行

while (getline(file, line)){ 
    istringstream lstr(line); 
    lstr >> fname; 
    lstr >> lname; 
    lstr >> grade; 
    lstr >> edu; 
    s = new Student(fname, lname, grade, edu); 
    c = new Container(); 
    c->student = s; 
} 

这可能已经做的工作​​。 编辑:你可能想#include <sstream>

相关问题