VS 2005 Pro spinnt (oder doch eher ich?)
-
Hi bei folgenden Code:
//list.cpp #include <iostream> using namespace std; struct Knoten { int daten; Knoten *next; }; //Anfang der Liste Knoten *Anfang = 0; //Funktion zum einfügen neuer Elemente Knoten *insertKnoten(int &val) { //Ist noch kein Element in der Liste, //dann fügen wir das erste am Anfang ein! if(Anfang == 0) { Knoten *node = new Knoten; node->daten = val; node->next = 0; Anfang = node; return Anfang; } //Es sind bereits Elemente in der Liste, //dann soll das neue hinten angehängt werden else { Knoten *node = Anfang; Knoten *newNode; while(node->next !=0) { node = node->next; } newNode = new Knoten; newNode->daten = val; newNode->next = newNode; return Anfang; } } //Alle Elemente der Liste anzeigen void showKnoten(const Knoten *n) { if(Anfang==0) { cout << "Die Liste ist leer!\n"; } else { cout << "1.Element: " << n->daten << "\n"; for(int i = 2; n->next !=0;i++) { n = n->next; cout << i << ".Element: " << n->daten << "\n"; } } } //Das erste Element mit dem Wert dat aus der Liste löschen Knoten *deleteKnoten(int dat) { if(Anfang == 0) { cout << "Die Liste ist leer\n"; } //Ist das erste Element das von uns gesuchte? if(Anfang->daten == dat) { Knoten *del = Anfang; if(Anfang->next != 0) { Anfang = Anfang->next; } delete del; } //Die komplette Liste nach dem gesuchten //Element durchlaufen else { Knoten *node = Anfang; while(node->next != 0 && node->next->daten != dat) { node = node->next; } if(node->next ==0) { cout << "Element zum Löschen kommt nicht" << "in der Liste vor\n"; } else { //das zu löschende Element an del zuweisen Knoten *del = node->next; //Einen Hilfszeiger hinter das zu löschende Element Knoten *help = del->next; //Das zu löschende Element "aushängen" node->next = help; delete del; } } return Anfang; } int main(void) { Knoten *node; int auswahl, ival; do { cout << "Eine einfache verkettete Liste\n"; cout << "------------------------------\n"; cout << "-1- Neues Element hinzufügen\n"; cout << "-2- Alle Elemente ausgeben\n"; cout << "-3- Einzelnes Element löschen\n"; cout << "-4- Programm Beenden\n\n"; cout << "Ihre Auswahl : "; cin >> auswahl; switch( auswahl) { case 1 : cout << "Daten eingeben: "; cin >> ival; node = insertKnoten(ival); break; case 2 : showKnoten(node); break; case 3 : cout << "Wert zum Löschen eingeben : "; cin >> ival; node = deleteKnoten( ival); break; case 4 : break; default : cout << "Falsche Menüauswahl?\n"; } return 0; }kommt der Fehler:
Fehler 1 fatal error C1075: Dateiende erreicht, bevor das zugehörige Element für das linke Element Klammer "{" in "c:\users\xxx\documents\visual studio 2005\projects\listen 1\listen 1\list.cpp(109)" gefunden wurde c:\users\philipp\documents\visual studio 2005\projects\listen 1\listen 1\list.cpp 144ich bin soweit mitgekommen das es an Visual Studio liegt
was kann ich dagegen tun? habe alles Updates (Vista updates etc)
Danke schon malmfg
TDK
-
int main(void) { Knoten *node; int auswahl, ival; do { ... switch( auswahl) { case 1 : cout << "Daten eingeben: "; cin >> ival; node = insertKnoten(ival); break; case 2 : showKnoten(node); break; case 3 : cout << "Wert zum Löschen eingeben : "; cin >> ival; node = deleteKnoten( ival); break; case 4 : break; default : cout << "Falsche Menüauswahl?\n"; } ... } // VERGESSEN return 0; }Das Problem sitzt natürlich VOR dem Computer. Immer schön die Klammern
nachzählen.
-
Fehler 1 error C2059: Syntaxfehler: 'return' c:\users\philipp\documents\visual studio 2005\projects\listen 1\listen 1\list.cpp 143??? VS zeigt mir den Fehler bei "return 0;" an
EDIT: Jesus sind wir alle blind -.-
Mit einer nicht geschlossenen do schleife^^
da gehört moch "while (auswahl !=4)" hin^^ danke!