ostringstream s; s << "123"; cout << s.str (). c_str () << endl; // comment effacer ostringstream ici? s << "456"; cout << s.str (). c_str () << endl;
La sortie est:
123 123456
J'ai besoin de:
123 456
Comment puis-je réinitialiser ostringstream pour obtenir le résultat souhaité?
s.str("");
s.clear();
La première ligne est requise pour réinitialiser la chaîne pour qu'elle soit vide; la deuxième ligne est requise pour effacer les indicateurs d'erreur éventuellement définis. Si vous savez qu'aucun indicateur d'erreur n'est défini ou si vous ne souhaitez pas les réinitialiser, vous n'avez pas besoin d'appeler clear()
.
Habituellement, il est plus facile, plus propre et plus simple d'utiliser un nouvel objet std::ostringstream
Au lieu de réutiliser un objet existant, à moins que le code ne soit utilisé dans un point chaud de performance connu.