Maison  >  Article  >  développement back-end  >  Comment réinitialiser efficacement un Stringstream ?

Comment réinitialiser efficacement un Stringstream ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-04 05:52:01188parcourir

How to Effectively Reset a Stringstream?

Réinitialiser efficacement les flux de chaînes

Lorsque vous essayez d'effacer un flux de chaînes pour le réutiliser pour une saisie et une extraction ultérieures, il est essentiel d'employer les techniques appropriées pour réinitialiser complètement le flux. Prenons l'exemple suivant :

stringstream parser;

parser << 5;
short top = 0;
parser >> top;
parser.str(""); // Attempting to reset the parser

parser << 6; // Input value ignored
short bottom = 0;
parser >> bottom;

Dans ce scénario, la tentative de réinitialisation du flux de chaînes en attribuant une chaîne vide à son membre str n'efface pas complètement le flux. En conséquence, la valeur d'entrée suivante de 6 est ignorée et la deuxième opération d'extraction échoue.

Pour réinitialiser efficacement un flux de chaînes, il est nécessaire non seulement d'attribuer une chaîne vide à str, mais également d'effacer tout échec restant et eof drapeaux. Ceci peut être réalisé en utilisant la méthode clear :

parser.str(std::string());
parser.clear();

En exécutant ces deux actions, le flux de chaînes est entièrement réinitialisé et prêt à être réutilisé, car la séquence sous-jacente est vidée et tous les indicateurs sont effacés. Ne pas effectuer les deux étapes peut entraîner un comportement inattendu, tel que le flux restant dans un état de « fin de fichier », provoquant l'échec des opérations ultérieures.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn