2016-04-04 22 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; 
    } 
} 

は、それが何かのウィットです私の構文は何ですか?私はそれを一緒に間違っているのですか?

プログラムは本質的に生徒の姓と名、学年と教育を尋ね、それをテキストファイルに保存してから、テキストファイルの情報をプログラムに読み込むことになっていますたくさんありますのでコード全体を投稿してください)。

ありがとうございます!

追加情報:リストでは私はあなたのデータは1行

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; 
} 

ですでに仕事をすることができこれは疑う

+0

この宿題ですか?つまり、 'vector'や' list'のような標準的なコンテナを使うことができませんか? – user657267

+0

行を読み込んだ後、ファイルストリームからさらに多くのものを解析しますか?もちろん、ストリングストリームでラインを解析したくないのですか? – Maikel

+0

getlineは必要ありません。 while(file >> fname >> lname >> grade >> edu)を使って... – ZDF

答えて

0

構造体のリンクリスト(学生)です。 編集:あなたがするかもしれない#include <sstream>

関連する問題