2017-04-21 9 views
0

8行のレコードを取得しようとしています。最初はレコード数、残りの7行はデータを格納するレコードのデータで構成されていますリンクされたリストC++:ファイルからデータを読み込んでリンクリストを作成する

私が遭遇している問題は、私のコードは最初のレコードを埋めるだけですが、coutを使用すると、ファイル全体を通過していることがわかります。ここで私が働いているコードの抜粋です:

fstream listBuilder; 
listBuilder.open("HW06.dat"); 

if (listBuilder.is_open()) { 
    TeleType *current; 
    current = listHead; 

    listBuilder >> numberOfRecords; 

    while (listBuilder) { 
     string firstName; 
     string lastName; 
     string phone; 
     string name; 

     listBuilder >> firstName >> lastName >> phone; 

     name = firstName + " " + lastName; 
     current->name = name; 
     current->number = phone; 

     current = current->nextaddr; 
     current = new TeleType; 
    } 

    listBuilder.close(); 
} // end if 
else { 
    cout << "***** Error: File failed to open. *****" << endl; 
} // end else 
+0

リンクリストを機能させるには、ノードをリンクする必要があります。あなたがそうしているように見えません。 – user4581301

+0

「List 」を使用していますか? C++のセマンティクスでCスタイルのリストビルドを行うのは非常に奇妙です。それに失敗した場合、あなたはすべてのコードを与えていません。 'listHead'? 'TeleType'?また、 'numberOfRecords'からの入力が確実であれば、それをループすることができます。 –

+3

紙の描画ボックスと矢印は、ポインタを使ってコードをデバッグする最善の方法です。 – molbdnilo

答えて

1

あなたが最初の周りではない他の方法で、次のノードを作成し、それを指している必要があります!

current->nextaddr = new TeleType; 
current = current->nextaddr; 
+0

ありがとう、これはまさに私の問題でした! –

関連する問題