Fehler: Operator '>>'???
-
Hi,
ich bin dabei eine MFC- Anwendung zu entwickln fürs Schreiben bzw. Lesen aus Dateien. Leider kann den unten beschriebenen Fehler nicht beseitigen. Könnte mir hier Jemend behilflich sein
Die implementierte Funktion lautet:
void CPerson::Serialize(CArchive &ar) { // Funktion der basisklasse aufrufen CObject::Serialize(ar); //Wird geschrieben? if (ar.IsStoring()) { //Alle Variablen in der richtigen Reihenfolge schreiben ar << m_sName << m_iAge << m_iMaritalStatus << m_bEmployed; } else //Alle variablen in der richtigen Reihenfolge aus dem Archiv lesen ar >> m_sName >> m_iAge >> m_iMaritalStatus >> m_bEmployed; }Der Fehler lautet:
error C2679: Binaerer Operator '>>' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ 'bool' akzeptiert (oder keine geeignete Konvertierung moeglich)
Fehler beim Ausführen von cl.exe.Vieln Dank im Voraus

-
CArchive überlädt die IO-Operatoren zwar für einige Datentypen, aber zufälligerweise ist 'bool' nicht dabei.
Für die Ausgabe ist das kein Problem - der bool-Wert wird in einen int umgewandelt und der kann ausgegeben werden. Bei der Eingabe geht das jedoch nicht, da brauchst du eine Hilfsvariable:
void CPerson::Serialize(CArchive &ar) { // Funktion der basisklasse aufrufen CObject::Serialize(ar); //Wird geschrieben? if (ar.IsStoring()) { //Alle Variablen in der richtigen Reihenfolge schreiben ar << m_sName << m_iAge << m_iMaritalStatus << m_bEmployed; } else { //Alle variablen in der richtigen Reihenfolge aus dem Archiv lesen int emp; ar >> m_sName >> m_iAge >> m_iMaritalStatus >> emp; m_bEmployed=emp; } }(btw solltest du bei der Ausgabe einige Trennzeichen vorsehen, damit die Daten am Ende wieder sauber auseinandergenommen werden können)