Menu Close

Programmieren, Algorithmen und Datenstrukturen 2 (Vorlesung 15)

Stream-Iteratoren

  • cin >> from >> to;  ← es werden keine Fehler abgefangen
  • .c_str() Char-Array-String, der mit 0 terminiert wird „Test“ = ‚T‘ ‚e‘ ’s‘ ‚t‘ ‚
    Menu Close

    Programmieren, Algorithmen und Datenstrukturen 2 (Vorlesung 15)

    Stream-Iteratoren

    • cin >> from >> to;  ← es werden keine Fehler abgefangen
    • .c_str() Char-Array-String, der mit 0 terminiert wird „Test“ = ‚T‘ ‚e‘ ’s‘ ‚t‘ ‚\0‘
    • Wir müssen STL-String in Char-Array umwandeln, weil das OS es so verlangt
    • ifstream = input file stream
    • istream_iterator<string> eos; ← Standardmäßig auf letztem Element

    Erstellen einer Wortliste aus einem Textfile

    #include <string>
    #include <iterator>
    #include <set>
    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main( ) {
    	// Dateinamen für Quell- und Zieldatei einlesen:
    	string from, to;
    	cin >> from >> to;
    	// Ein- und Ausgabe-Stream erstellen:
    	ifstream is( from.c_str() ); ofstream os( to.c_str() );
    	// Stream-Iterator zur Eingabe:
    	istream_iterator<string> ii( is );
    	// "end-of-stream" (wird standardmäßig auf EOF/end-of-file gesetzt):
    	istream_iterator<string> eos;
    	// Stream-Iterator zur Ausgabe, der jedesmal "\n" anhängt:
    	ostream_iterator<string> oo( os, "\n" );
    	// Das set-Objekt namens buffer wird mit dem Input initialisiert:
    	set<string> buffer( ii, eos );
    	//multiset<string> buffer( ii, eos );
    	// buffer wird in die Ausgabedatei kopiert (set ist bereits sortiert und ohne Duplikate)
    	copy( buffer.begin(), buffer.end(), oo );
    	return 0;
    }

    Schreiben Sie einen Kommentar

    Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

    Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.

  • Wir müssen STL-String in Char-Array umwandeln, weil das OS es so verlangt
  • ifstream = input file stream
  • istream_iterator<string> eos; ← Standardmäßig auf letztem Element

Erstellen einer Wortliste aus einem Textfile

#include <string>
#include <iterator>
#include <set>
#include <iostream>
#include <fstream>
using namespace std;

int main( ) {
	// Dateinamen für Quell- und Zieldatei einlesen:
	string from, to;
	cin >> from >> to;
	// Ein- und Ausgabe-Stream erstellen:
	ifstream is( from.c_str() ); ofstream os( to.c_str() );
	// Stream-Iterator zur Eingabe:
	istream_iterator<string> ii( is );
	// "end-of-stream" (wird standardmäßig auf EOF/end-of-file gesetzt):
	istream_iterator<string> eos;
	// Stream-Iterator zur Ausgabe, der jedesmal "\n" anhängt:
	ostream_iterator<string> oo( os, "\n" );
	// Das set-Objekt namens buffer wird mit dem Input initialisiert:
	set<string> buffer( ii, eos );
	//multiset<string> buffer( ii, eos );
	// buffer wird in die Ausgabedatei kopiert (set ist bereits sortiert und ohne Duplikate)
	copy( buffer.begin(), buffer.end(), oo );
	return 0;
}

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.