Werte beim Einlesen aus Stream ignorieren
-
Hallo,
kleine blöde Frage: Angenommen, in einer Datei stehen viele Werte und mich interessiert nur jeder dritte, wie mache ich das am elegantesten?
ifstream datei("foo.txt"); while (noch_nicht_am_Dateiende) { double interessanter_wert; double dummy; datei >> dummy; datei >> dummy; datei >> interessanter_wert; do_something(interessanter_wert); }Nun würde ich aber natürlich viel lieber so was schreiben:
ifstream datei("foo.txt"); while (noch_nicht_am_Dateiende) { double interessanter_wert; datei.ignore_next_n_values(2); // <-- Gibt's so eine Funktion in der Standardlib? datei >> interessanter_wert; do_something(interessanter_wert); }Die "normale"
ignore()-Funktion der istreams scheint mir nicht weiterzuhelfen... Jemand eine Idee?
mfg
-
Na ja, du könntest eine istream_iterator verwenden und ihn zweimal inkrementieren ohne zu dereferenzieren. Das entspräche wohl dem Überspringen von zwei Werten.