Eingabe-Operationen: Erläuterung zu putback()  (3/3)

Beispiel (Fortsetzung 2)

Im Beispiel wird zunächst versucht, die verschiedenen Eingabeformate für ein Objekt der Klasse Bruch zu erkennen und Zähler und Nenner den Formaten entsprechend korrekt einzulesen. Die putback()-Methode wird hier dazu eingesetzt, daß erste gelesene Zeichen in den Stream zurückzustellen, falls es nicht die erste Klammer '(' war. Dann war dieses Zeichen nämlich schon der Zähler, den man abschließend einliest.

Dieses Zurückstellen in den Stream ist deshalb nötig, weil aus dem Eingabestream zunächst ein Character-Typ eingelesen wurde. Stellt sich jedoch heraus, daß es sich nicht um '(' handelt, so muß es sich -- da ein Objekt der Klasse bruch eingelesen wird -- um einen double-Typ handeln. Eine einfache Zuweisung der Art

  zaehler = <eingelesenes Zeichen>;

ist daher nicht möglich, da es sich um zwei verschiedene Datentypen handelt. Folglich wird das eingelesen Zeichen wieder in den Stream gestellt, so daß es anschließend als double korrekt eingelesen werden kann.