2009-08-18 14 views
1

Ein Tutorial spricht über cin und cout: "Syntaktisch werden diese Streams nicht als Funktionen verwendet: Stattdessen werden Daten in Streams geschrieben oder von ihnen gelesen mit den Operatoren < <, genannt der Insertionsoperator und >>, die Extraktion genannt Operator."Was ist ein "Stream", der sich auf cin und cout bezieht?

Was ist ein "Stream"?

Antwort

3

Betrachten Sie einen "Stream" als physischen Schlauch oder Rohr. An einem Ende kann jemand etwas Wasser eingießen. Am anderen Ende wird es herauskommen. Dies ist "Lesen" und "Schreiben" in den Stream.

Ein Stream ist nur ein Ort, wo Daten gehen. Es kann ein "Socket-Stream" (über das Internet) oder ein "Datei-Stream" (zu einer Datei) oder vielleicht ein "Speicher-Stream" sein, nur Daten, die an einen Platz im Speicher (RAM) geschrieben werden.

+1

Oder, wie im Zusammenhang mit der Frage, eine "Konsole Stream", wo ein Ende des "Schlauches" ist die Tastatur oder der Bildschirm. –

0

Ein "Stream" ist ein Objekt, das eine Datenquelle oder einen Ort darstellt, an dem Daten geschrieben werden können.

Beispiele umfassen Dateihandles und Pipes - Dinge, aus denen Sie Daten lesen oder Daten schreiben können.

Eine wichtige Eigenschaft von Streams ist, dass sie eine gemeinsame Schnittstelle haben. Daher kann derselbe Code entweder in eine Datei oder eine Pipe schreiben (zum Beispiel), ohne dass sie neu geschrieben werden müssen.

0

Sie sollten Streams als Abstraktionen auf zugrunde liegenden 'Quellen' oder 'Senken' von Daten betrachten. Eine Quelle ist etwas, von dem Sie Daten lesen, und eine Senke ist etwas, in das Sie Daten schreiben.

Das Konzept des Stromes ermöglicht es Ihnen, I/O auf verschiedenen Medien, Netzwerkverbindungen, Leitungen zwischen Anwendungen, Dateien, usw.

Der Strom Abstraktion ist sehr wertvoll für uns als Entwickler auszuführen, wie es uns erlaubt, um die Eingabe und Ausgabe zu vereinfachen, und es gibt uns die Flexibilität, die Quellen und Ziele dieser Streams anzuordnen und neu zu verbinden.

Eine gute Analogie ist die eines Schlauches. Sie können Daten über Schläuche senden und empfangen, und Sie können diese Schläuche an verschiedene Dinge anschließen.

Indem wir Programmen erlauben, durch Schläuche zu sprechen, erlauben wir allen Arten von Programmen, miteinander zu sprechen, und wir erhöhen Interoperabilität und Nutzen erheblich.

Dies ist das Herzstück der UNIX-Philosophie und unterstützt einige sehr leistungsfähige Programmiersprachen.