C++ STL Stream-Iterator

Funktionsweise und Umgang mit C++ STL Stream-Iteratoren zum lesen eins Eingabestroms und schreiben eines Ausgabestroms.



istream und ostream sind spezielle Eingabestrom- bzw. Ausgabstrom-Iteratoren. Sie unterstützen das Einlesen eines Eingabestroms bzw. das Schreiben eines Ausgabestroms

istream_iterator it(istr);
definiert einen Iterator it zum Einlesen von Elementen vom Typ T
des Eingabestroms istr. Wird istr weggelassen, dann wird it mit Stream-Ende initialisiert.

ostream_iterator it(ostr, char* seperator = ″″);
definiert einen Iterator it zum Schreiben von Elementen vom Typ T auf dem Ausgabestrom ostr. Ausgaben werden durch die Zeichenkette seperator getrennt.

// Beispiel zum lesen eines Eingabestroms aus der Datei input.txt
 
#include <iostream>
#include <fstream>
#include <iterator>
#include <string>
 
 
int main()
{
  // Eingabestrom fin:
  ifstream fin("input.txt");
  istream_iterator<string> inIt(fin), end;
 
  while (inIt != end)
    cout << *inIt++ << endl; // Eingabestrom auf Konsole ausgeben
 
  return 0;
}
// Beispiel zum lesen eines Eingabestroms aus der Datei input.txt
// und schreiben der Ausgabe in der zweiten Datei output.txt
 
#include <iostream>
#include <fstream>
#include <iterator>
#include <string>
 
 
int main()
{
  // Eingabestrom fin:
  ifstream fin("input.txt");
 
  // Ausgabestrom fout:
  ofstream fout("output.txt");
  istream_iterator<string> inIt(fin), end;
  ostream_iterator<string> outIt(fout,"
");
  while (inIt != end)
    *outIt++ = *inIt++;
 
  return 0;
}