std::istream_iterator und std::cin
-
Hi,
folgender Code stammt aus dem Buch "The C++ Standard Library" von Nicolai M. Josuttis.
#include <iostream> #include <vector> #include <string> #include <algorithm> #include <iterator> using namespace std; int main() { vector<string> coll; /* read all words from the standard input * - source: all strings until end-of-file (or error) * - destination: coll (inserting) */ copy (istream_iterator<string>(cin), // start of source istream_iterator<string>(), // end of source back_inserter(coll)); // destination // sort elements sort (coll.begin(), coll.end()); /* print all elements without duplicates * - source: coll * - destination: standard output (with newline between elements) */ unique_copy (coll.begin(), coll.end(), // source ostream_iterator<string>(cout,"\n")); // destination }
Die Aufforderung zur Eingabe neuer Zeichenketten auf der Konsole bricht doch so aber nie ab, also fordert das PRogramm endlos lange zur Eingabe neuer Zeichenketten auf? Also ist der istream_iterator für std::cin doch ein bisschen sinnlos, oder?
-
versuch mal strg+D
-
Funktioniert nicht, dann steht auf der Konsole, als Teil der Zeichenkette, ^D.
-
davie schrieb:
versuch mal strg+D
Oder strg+z unter Windows.
-
Okay, das funktioniert, woher wisst ihr sowas, ich habe das bisher nirgends gelesen?
Kann man auch andere Tastenkombinationen im Quellcode definieren?
-
Kann man auch andere Tastenkombinationen im Quellcode definieren?
Die genannten Tastenkombinationen sind auf Betriebssystem-Ebene (bzw. Shell-Ebene) nicht auf C++ Quellcode-Ebene.
-
Achso, schreibt diese Tastenkombination ein EOF-Zeichen in den Eingabestream?
-
Real_PsychoDAD schrieb:
Achso, schreibt diese Tastenkombination ein EOF-Zeichen in den Eingabestream?
ja