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?
Hier ist die open methode. fp ist Membervariable von File.
[Edit:]
Fehler liegt darin, das der Debugger Deklarationen überspringt.
while-bedingung lieferte 0
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;
}
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: