2008-11-23 12 views

Antwort

5

Sehr informell: Ein String ist eine Sammlung von Zeichen, ein Stream ist ein Werkzeug, um bewegte Daten zu manipulieren. Ein Zeichenfolgenstream ist eine C++ - Klasse, mit der Sie eine Zeichenfolge als Quelle und Ziel von Daten für einen Stream verwenden können.

Auch ... Google ist dein Freund.

+13

Stackoverflow soll eine wiki-ähnliche Ressource an der Spitze vieler Google-Suchen sein. Leute können irgendeine Frage stellen, wenn sie nicht vorher gefragt worden ist. – fluffels

3

Meine Vermutung ist, dass ein stringstream wie ein Iostream ist, aber anstatt in eine Datei zu schreiben oder aus einer Datei zu lesen, schreibt oder liest man aus einer Zeichenfolge.

8
  • istream und ostream: Schnittstellen zu Streaming-Daten (Dateien, Steckdosen, etc.)
  • istringstream: eine istream, die einen String wickelt und bietet seinen Inhalt
  • ostringstream: ein ostream, die den Inhalt geschrieben spart bis zu es als Zeichenkette

Beispiel:

istringstream datastream("1 2 3"); 

int val; 
datastream >> val; 
cout << val << endl; // prints 1 

datastream >> val; 
cout << val << endl; // prints 2 

datastream >> val; 
cout << val << endl; // prints 3 


ostringstream outstream; 
outstream << 1 << "+" << 2 << "=" << 3; 
cout << outstream.str() << endl; // prints "1+2=3" 
1

In C und/oder Unix war die grundlegende Metapher die Datei. Standard-out, Standard-in, Netzwerk-Sockets wurden alle mit Dateideskriptoren dargestellt. So können Sie fprintf() verwenden, um in diese "Dateien" zu schreiben, ohne zu wissen, was wirklich darunter liegt.

Als eine sicherere und kühlere Alternative, präsentierte C++ iostream als die grundlegende Metapher, die fast in die Sprache mit << Operator eingebaut ist. Wiederum kann auf Dateien, Strings und (mit Bibliothek) -Netzwerk unter Verwendung von Streams zugegriffen werden, ohne zu wissen, was es ist.

Verwandte Themen