Einzelnen Beitrag anzeigen
Ungelesen 03.06.14, 11:00   #3
Show_Down
Anfänger
 
Registriert seit: Apr 2009
Beiträge: 1
Bedankt: 3
Show_Down ist noch neu hier! | 0 Respekt Punkte
Standard

Danke an Berlin1992, seltsamer weis hab ich das mit dem extern schonmal probiert aber es hat nicht funktioniert, nach zwei tagen mach ich den selben versuch und siehe da es hat funktioniert.


Jetzt hätte ich aber noch eine andere frage:

Und zwar hab ich ja den Container in dem "Medien Angelegt werden mit einer Signatur (Zahlen) und einem Namen.
Wenn versucht wird ein neues Medium anzulegen mit einer Signatur die es schon gibt soll ein Fehler ausgegeben werden und dieses Neue medium nicht in der liste aufgeführt werden bzw. soft gelöscht werden.
Mittlerweile hab ich es soweit dass erkannt wird dass bereits ein Medium mit der gleichen Signatur existiert und den Fehler ausgibt, jedoch ist dann in der Liste/container eine leere stelle und als signatur steht dort ein zufälliger zahlen wert.

Was muss ich tun um zum oben beschriebenen Ergebnis zu kommen?



Hier mal der Konstruktor mit dem wesentlichen:

Code:
....

Media::Media(){

	cin.clear();
	cin.ignore( numeric_limits<streamsize>::max(), '\n' );
	cout << "Bitte Mediumdaten eingeben: Signatur und Titel\n\n";
	cout << "Signatur: ";

	while (!(cin >> signatur) && (cin.fail()) ){
		cin.clear();
		cin.ignore( numeric_limits<streamsize>::max(), '\n' );
		cout << "Bitte Mediumdaten eingeben: Signatur und Titel\n\n";
		cout << "Signatur: ";
		cout << endl;
	}

	for (container.begin(); container.getitem() != NULL; container.next()){
		if(container.getitem()->get_signatur() == signatur){
			Media* k_tmp = container.getitem();
			delete k_tmp;
			cout << "Es existiert bereits ein Medium mit dieser Signatur \n" << endl;
			return;
			}
		cout << endl;
		}


	cout << "Titel: ";
	cin.ignore( numeric_limits<streamsize>::max(), '\n' );
	getline(cin, titel );
	cout << endl;
};


....
Show_Down ist offline   Mit Zitat antworten