93 votes

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:

123
456

Comment puis-je réinitialiser ostringstream pour obtenir le résultat souhaité?

196voto

James McNellis Points 193607
s.str("");
s.clear();

La première ligne est nécessaire pour réinitialiser la chaîne à vide; la deuxième ligne est nécessaire pour effacer toute erreur drapeaux qui peut être définie. Si vous savez que sans erreur les drapeaux sont en jeu ou vous n'avez pas de soins sur la réinitialisation, alors vous n'avez pas besoin d'appeler clear().

Habituellement, il est plus facile, plus propre et plus simple (straightforwarder?) juste à utiliser un nouveau std::ostringstream objet au lieu de réutiliser l'existant, à moins que le code est utilisé dans une performance connus hot spot.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X