web-dev-qa-db-fra.com

Comment effacer ostringstream

 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é?

88
Alex F
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.

189
James McNellis