"String Streams" em C++

O que é ?

String stream é um recurso que permite escrevermos em uma string como se estivéssemos realizando saída na tela (ex: via cout). Dessa forma, é possível utilizar todas as funcionalidades da iostream (formatos, alinhamento, precisão numérica, tamanho de campo, etc) em uma string.

É útil, por exemplo, para retornarmos informações sobre um objeto sob forma de string, especialmente quando é preciso combinar dados numéricos com dados não-numéricos.

Utilização

Para utilizar o recurso de string stream, é necessário primeiramente incluir o header sstream. A partir daí, deve-se declarar um objeto do tipo ostringstream (output string stream) e utilizá-lo como se fosse uma saída padrão, ou seja, da mesma forma que cout:

Finalmente, para se obter a string armazenada no objeto ostringstream usa-se o método str:

#include <iostream>
#include <iomanip>
#include <cmath>
#include <sstream>

using namespace std;

string converte(float valor)
{
	ostringstream aux;
	aux << "Exemplo de saída em string ";
	aux << fixed << setprecision(2) << sqrt(valor);
	return aux.str();
}

int main()
{
	float v;
	cout << "Digite o valor: ";
	cin >> v;
	cout << converte(v);
}

Observe que se o objetivo é apenas concatenar (juntar) duas ou mais strings, não é necessário usar string stream: basta empregar o operador de concatenação (+).

Outras operações

O guia de referência à biblioteca padrão C++ contém uma descrição completa de todas as operações sobre string streams: veja aqui.