Heim > Backend-Entwicklung > C++ > Hauptteil

Wie kann man einen Stringstream in C effektiv zurücksetzen?

DDD
Freigeben: 2024-11-04 19:32:01
Original
345 Leute haben es durchsucht

How to Effectively Reset a Stringstream in C  ?

Einen Stringstream effektiv zurücksetzen

In C sind Stringstreams ein wertvolles Werkzeug zum Bearbeiten und Parsen von Strings. Um einen Stringstream zurückzusetzen, verwenden Entwickler die Methode str(), um den zugrunde liegenden String zu löschen. Dieser Ansatz setzt den Stream jedoch möglicherweise nicht vollständig zurück.

Die Fallstudie

Beachten Sie den folgenden Codeausschnitt:

<code class="cpp">stringstream parser;

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

parser << 6; // Fails to insert 6 into parser
short bottom = 0;
parser >> bottom;</code>
Nach dem Login kopieren

Die Absicht ist um den Parser-Stream zurückzusetzen und ihm einen neuen Wert zuzuweisen. Allerdings gelingt es dem Code unerwartet nicht, 6 in den Parser einzufügen.

Den Fehler verstehen

Die Ursache des Problems liegt im unvollständigen Zurücksetzen. Die Methode str() löscht nur die zugrunde liegende Zeichenfolge, während die Fehlerflags (z. B. eof und fail) gesetzt bleiben. Nachfolgende Vorgänge, wie das Lesen aus dem Stream, schlagen aufgrund dieser Flags fehl.

Richtige Rücksetztechnik

Um einen Stringstream effektiv zurückzusetzen, ist es wichtig, nicht nur zu löschen die Zeichenfolge, sondern setzt auch die Fehlerflags zurück. Dies kann mit der Methode „clear()“ erreicht werden:

<code class="cpp">parser.str( std::string() );
parser.clear();</code>
Nach dem Login kopieren

Durch den Aufruf von str() und clear() wird die Zeichenfolge auf eine leere Zeichenfolge zurückgesetzt und alle Fehlerflags werden gelöscht, um sicherzustellen, dass nachfolgende Operationen werden erfolgreich sein.

Das obige ist der detaillierte Inhalt vonWie kann man einen Stringstream in C 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
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!