Une des possibilités est:
somestringstream.str("");
Mais est-ce le plus optimal? Existe-t-il un moyen de conserver le tampon interne de chaîne de caractères, de sorte que les appels des opérateurs suivants << () n'aient pas besoin de réserver à nouveau de la mémoire?
J'ai toujours fait:
s.clear();//clear any bits set
s.str(std::string());
@litb va plus en détail sur la façon de rechercher le début du flux combiné avec std :: ends, vous pouvez conserver la taille allouée.