?
nickey1989 schrieb:
Die Zeile 12 verstehe ich jedoch nicht.
Ein Stream (hier ifstream ) hat immer einen Zustand. Einfach gesagt: Entweder ist der Zustand des Streams
- gut ==> Die nachfolgende Operation, die du auf den Stream anwendest, könnte funktionieren.
- oder schlecht ==> Alle Operationen, die du auf den Stream anwendest, schlagen fehl.
Dein Format nutzt ja einen ; als Trennzeichen. Wenn das zu überlesende Zeichen ein ; ist, ist alles gut, das Format stimmt. Ist es aber kein ; dann ist ein Formatfehler aufgetreten. Wenn das passiert, sagen wir einfach, der Stream ist schrott und überführen (setstate) ihn deswegen in den Zustand schlecht (ios_base::fail). Somit verhindern wir weitere Operationen, da offensichtlich etwas nicht stimmt.
nickey1989 schrieb:
Die Einteilung der Klasse in public und private verursacht bei mir Probleme. Es kommt die Fehlermeldung: Auf "Member "winddata::date" (deklariert in Zeile 30)" kann nicht zugegriffen werden. Deshalb habe ich das Schlüsselwort "private" gelöscht. Ich habe nun die gesamten Elemente der Klasse als "public" deklariert.
Kann eigentlich nicht sein (da friend). Hast du den Quellcode von Werner wirklich kopiert?
nickey1989 schrieb:
Ich habe dann ein Objekt winddata_object erzeugt, wie man im Code unten sehen kann. Ich wollte dann einzele Elemente dieses Objektes ausgeben lassen. Aber ich erhalte keine bzw. falsche Werte. Wo liegt mein Fehler?
winddata winddata_object;
cout << winddata_object.date << endl;
cout << winddata_object.lat << endl;
Na, du musst winddata_object ja erstmal einlesen. So hat es ja total willkürliche Werte.