Lesen Daten aus der Datei und das einfügen in verkettete Liste C++

Für dieses Programm, ich habe gelesen in einer Liste von Namen aus einer txt-Datei, und erstellen Sie einen neuen Knoten für jeden Namen, dann legen Sie den Knoten in einer verketteten Liste, und halten Sie Sie sortiert, als neue Namen sind zu Lesen in. Ich habe Schwierigkeiten, richtig Lesen in der Datei zeilenweise und erstellen Sie einen neuen Knoten und das setzen der Daten in. Ich bin ganz neu verknüpfte Listen, aber die Logik scheint sound in meiner Funktion einfügen, und ich denke, mein Fehler, verursacht durch meine syntax.
Hier ist mein main bisher:

#include <iostream>
#include <cstdlib>
#include <fstream>
#include <string>
#include "SortedLinkList.h"
using namespace std;

int main()
{    
   SortedLinkList<string> sll;    //create sortedlinklist object
   SortedLinkList<string> sll2;

   ifstream infile("List1.txt");
   if(infile.fail()) {
      cout << "the input file could not be opened" << endl;
      exit(0);
   }
   else {
      cout << "Opening file 1" << endl;
      string s;
      while (infile >> s)
      {
        infile >> sll;         
        sll.insert(s); //attempting to create new node and use data read 
                         from file
      }
   }
}

Hier ist meine Funktion einfügen. Das ist in "SortedLinkList.h"
Die Klasse Vorlagen, und ein Knoten.h-Klasse hat bereits zur Verfügung gestellt wurden,
was hat die getData() und getNext () - Funktion bereits. Die Variablen, aktuellen,Kopf,zurück, und zählen Sie alle erklärt worden. Die "Knoten.h" - Datei ist #in der "SortedLinkList.h".

template <class T>
void SortedLinkList<T>::insert(const T & value)
{
    cout << "insert data" << endl;
    //allocate a node with new
    Node<T> *newNode, *current, *previous;
    newNode = new Node<T>(value);
    current = head;
    previous = 0;
    while(current != NULL)
    if(head == 0)
    {
        head = newNode;
    }
    else
    {
        SortedLinkList* current = head;
        SortedLinkList* previous = 0;

        //traverse list to find ins. location
        while(current != 0)
        {
            if(current->getData() >= newNode->getData())
            {
                break;
            }
            else
            {
                previous = current;
                current = current->getNext();
            }
        }
        //insert at head
        if(current == head)
        {
            newNode->getNext() = head;
            head = newNode;
        }
        //insert after head
        else
        {
            newNode->getNext() = current;
            previous->getNext() = newNode;
        }
    }
    count++;
}
  • Was macht Sie denken, dass es Fehler sind in deinem code?
  • Ich habe versucht zu kompilieren, nur, dass ein Teil der Haupt-und der einfügen-Funktion, und es wird nicht kompiliert. Habe ich alle notwendigen Variablen (soweit ich weiß) und die "Knoten.h" Klasse auch.
  • Bitte fügen Sie die compiler-Fehlermeldungen an deinen post an.
  • Der compiler sagt, es gibt zwei Fehler, aber die Fehlermeldungen sind wirklich lang.
  • die Fehler der Vergangenheit die Zeichen-Grenze
Schreibe einen Kommentar