String-Ausgabestreams dienen dem Zweck, eine Ausgabe irgendwelcher Daten zu puffern. Es stehen Konvertierungs-Funktionen oder -Operatoren zur Verfügung. Damit können Daten grundlegender Typen wie char, int, float, double zu Strings konvertiert werden. Mithilfe des vielfach überladenen Ausgabeoperators "<<" können sehr bequem Daten hintereinander im Puffer eines String-Ausgabestreams abgelegt werden.

Wenn dem Stream alle erwünschten Ausgaben zugeführt wurden, kann man einfach auf den gesamten zusammengesetzten String mittels der Stream-Methode str() zugreifen. Diese Elementfunktion liefert ein string-Objekt. string ist eine in der der Standardbibliothek definierte Klasse für Zeichenketten.

Diejenige Klasse, die mit "Zeichen vom Typ char" arbeitet, heißt ostringstream. Sie ist auf der Basis des Templates basic_ostringstream definiert.

typedef basic_ostringstream<char> ostringstream;
Wenn Sie sich für weitere Informationen zu ostringstream interessieren, müssen Sie also unter basic_ostringstream suchen.

Die Beschreibungsdatei für String-Ausgabeströme ist <sstream> (von string stream). Wenn Sie string-Objekte verwenden wollen, benötigen Sie auch die string-Beschreibungsdatei <string>. Vergessen Sie nicht den Namensraum std!

Beispiel:

#include <sstream>

using namespace std;

int main()
{
 ostringstream oss;
 int a, b;
 cout << "Geben Sie bitte zwei ganze Zahlen ein!\n";
 cin >> a >> b;
 oss << "Sie haben folgende Zahlen eingegeben:\n"
  << a << ", " << b;
 cout << oss.str() << endl;
 return 0;
}
Ausgaben:
Geben Sie bitte zwei ganze Zahlen ein!
12 34
Sie haben folgende Zahlen eingegeben:
12, 34

Sie sehen, dass Sie einem String-Ausgabestream Daten ebenso zuführen können wie dem Objekt cout. Das beschriebene Verfahren können Sie sehr gut bei Ausgaben innerhalb einer GUI-Anwendung nutzen. Falls Sie Microsoft Visual C++ 6 verwenden, müssen Sie wahrscheinlich den proprietären Datentyp CString oder einen nullterminierten Standard C-String verwenden. Hierzu können Sie die Methode string::c_str() aufrufen, die einen nullterminierten C-String liefert.

string temp(oss.str()); // temp wird mit dem von oos.str() gelieferten Wert konstruiert.
AfxMessageBox(temp.c_str());
Das temporäre string-Objekt "temp" wird allerdings nicht benötigt.
Ersetzen Sie dazu einfach "temp" durch "oss.str()"!
AfxMessageBox(oss.str().c_str());