Heim > Backend-Entwicklung > C++ > Hauptteil

Wie kann man einen Stringstream effektiv zurücksetzen?

Mary-Kate Olsen
Freigeben: 2024-11-04 05:52:01
Original
179 Leute haben es durchsucht

How to Effectively Reset a Stringstream?

Stringstreams effektiv zurücksetzen

Wenn Sie versuchen, einen Stringstream zu löschen, um ihn für die weitere Eingabe und Extraktion wiederzuverwenden, ist es wichtig, die entsprechenden Techniken anzuwenden Den Stream vollständig zurücksetzen. Betrachten Sie das folgende Beispiel:

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;
Nach dem Login kopieren

In diesem Szenario wird der Stream durch den Versuch, den Stringstream durch Zuweisen eines leeren Strings zu seinem Str-Mitglied zurückzusetzen, nicht vollständig gelöscht. Infolgedessen wird der nachfolgende Eingabewert von 6 ignoriert und der zweite Extraktionsvorgang schlägt fehl.

Um einen Stringstream effektiv zurückzusetzen, ist es notwendig, str nicht nur einen leeren String zuzuweisen, sondern auch alle verbleibenden Fehler und zu löschen eof-Flaggen. Dies kann mit der Clear-Methode erreicht werden:

parser.str(std::string());
parser.clear();
Nach dem Login kopieren

Durch die Ausführung dieser beiden Aktionen wird der Stringstream vollständig zurückgesetzt und ist zur Wiederverwendung bereit, da die zugrunde liegende Sequenz geleert und alle Flags gelöscht werden. Wenn beide Schritte nicht ausgeführt werden, kann es zu unerwartetem Verhalten kommen, z. B. dass der Stream im Status „Ende der Datei“ verbleibt, was dazu führt, dass nachfolgende Vorgänge fehlschlagen.

Das obige ist der detaillierte Inhalt vonWie kann man einen Stringstream effektiv zurücksetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!