Merkwürdiger Programmsprung

Unicate

Erfahrenes Mitglied
Nach dem Aufruf von readCustomer() (im debugger beobachtet) springt das Programm nach dem Aufruf von custumerfile.open("rb"),welches ein true zurückliefert, direkt zu customerfile.close()
Und ich weiss nicht warum.
Könnt ihr mir helfen?
Code:
ArrayList<Person>& Saver::readCustomer() {
	ArrayList<Person> *list = new ArrayList<Person>();
	if(customerfile.open("rb")) {
		unsigned int kunr;
		while((kunr = customerfile.readInteger()) ) {
			Person person;
			person.kunr = kunr;
			person.own = customerfile.readDouble();
			person.vorname = customerfile.readString();
			person.nachname = customerfile.readString();
			person.strasse = customerfile.readString();
			person.plz = customerfile.readString();
			person.ort = customerfile.readString();
			list->add(person);
		}
		customerfile.close();
		cout << "read " << list->size() << " customers "<<endl;
	}
	return *list;
}
Hier ist die open methode. fp ist Membervariable von File.

Code:
bool File::open(const char *type) {
	writeType = type;
	if(!(fp = fopen(filePath.toChar(), writeType.toChar()))) {
		fp = NULL;
		return false;
	} else {
		return true;
	}
}

[Edit:]
Fehler liegt darin, das der Debugger Deklarationen überspringt.
while-bedingung lieferte 0
 
Zuletzt bearbeitet:
Zurück