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

Beispiel (Fortsetzung 1)

  // [... Fortsetzung des Beispielprogramms]

    str >> c;                // Einlesen eines Characters aus dem Stream
    if (c == '(') {
      str >> zaehler >> c;   // Double in Variable zaehler einlesen, danach nächstes Zeichen lesen
      if (c == ',')  str >> nenner >> c;
      if (c != ')') str.clear(ios::badbit);    // Fehlerstatus des Streams setzen
    }
    else {
      str.putback(c);        // Das bereits eingelesenes Zeichen in den Stream zurückstellen
      str >> zaehler;
    }

    // Falls Streamstatus in Ordnung ist, erzeuge den Bruch:
    if (str) br = bruch(zaehler,nenner);
    return br;
  }