Die ostringstream-Klasse ist eine der Streaming-Klassen der C++ - Standardbibliothek, mit der Sie Daten in eine Zeichenfolge schreiben können. Manchmal kann es notwendig sein, den Inhalt eines ostringstream zu bereinigen und mit dem Schreiben von Daten von einem leeren Blatt zu beginnen.
Es gibt jedoch einige Verwirrung bezüglich der Bereinigung von ostringstream, da diese Klasse keine direkte Methode für diese Aktion bereitstellt. Aber verzweifeln Sie nicht, es gibt einige einfache Möglichkeiten, den Ostringstream zu löschen und mit dem Schreiben fortzufahren.
Eine Möglichkeit besteht darin, eine leere Zeichenfolge mit der str() -Methode zuzuweisen. Wenn Sie diese Methode mit einem leeren String-Argument aufrufen, wird der Inhalt des ostringstream gelöscht und für neue Einträge bereit gestellt. Zum Beispiel:
Jetzt enthält der ostringstream nur die Zeichenfolge "Neue Zeile". Diese Reinigungsmethode ist am einfachsten und unkompliziertesten.
Eine andere Möglichkeit, einen ostringstream zu bereinigen, besteht darin, die rdbuf() -Methode zu verwenden, die den Streampuffer zurücksetzt und einen neuen erstellt. Zum Beispiel:
Jetzt enthält der ostringstream nur die Zeichenfolge "Neue Zeile". Diese Methode ist weniger intuitiv, bietet aber auch die Möglichkeit, den ostringstream zu löschen und mit der Aufnahme fortzufahren.
Wie lösche ich einen ostringstream?
Reinigen ostringstream kann mit der Methode str, an die eine leere Zeichenfolge übergeben wird:
oss.str(""); // Inhalt des Streams löschen
Im obigen Code wird ein Objekt erstellt ostringstream mit dem Namen oss und die Zeile "Hallo Welt!". Als nächstes wird die Methode aufgerufen str Objekts oss mit dem Argument-eine leere Zeichenfolge, wodurch der Inhalt des Streams bereinigt wird.
Nach dem Löschen des Inhalts ostringstream sie können neue Daten schreiben oder mit der Bearbeitung eines bereits gelöschten Streams fortfahren.
Daher ist die Methode str mit einem leeren Argument ist es eine einfache und effektive Methode zum Bereinigen ostringstream für die spätere Verwendung.
Probleme mit Restdaten im ostringstream
Die Klasse ostringstream in C++ wird es verwendet, um einen String-Stream zu erstellen, auf den Schreibvorgänge angewendet werden können, z. B. operator. Bei der Wiederverwendung des Streams können jedoch Probleme mit Restdaten auftreten.
Restdaten sind Daten, die nach der Verwendung im Stream verbleiben. Zum Beispiel, wenn Sie die Zeichenfolge "Hello, world!" und dann haben Sie versucht, eine andere Zeile zu schreiben, dann wird eine neue Zeile zu einer bereits vorhandenen Zeile hinzugefügt, anstatt sie zu ersetzen.
Dies liegt daran, dass der interne Puffer des Quellobjekts ostringstream speichert alle Daten, die in den Stream geschrieben wurden. Wenn Sie das Objekt erneut verwenden, werden die Restdaten gespeichert und an die neuen Daten angehängt.
Sie können die Methode verwenden, um Restdaten im Stream zu bereinigen str() mit einer leeren Zeichenfolge als Parameter. Diese Methode überschreibt den Inhalt des Streams mit neuen Daten und löscht die restlichen Daten.
Beispiel für die Verwendung der Methode str() zum Bereinigen von Restdaten:
#include #include int main()Um also Probleme mit Restdaten im Stream zu vermeiden ostringstream es ist notwendig, es vor der Wiederverwendung mit der Methode zu reinigen str().
Methoden zum Bereinigen von ostringstream
Es kann jedoch manchmal notwendig sein, den ostringstream zu bereinigen und alle zuvor geschriebenen Daten zu löschen. Eine Reihe von Methoden sind dafür verfügbar:
- str(): Diese Methode gibt den aktuellen ostringstream-Inhalt als Zeichenfolge zurück. Wenn Sie ihm eine leere Zeichenfolge übergeben, wird dieser Stream "gelöscht" (das heißt, alle aufgezeichneten Daten werden gelöscht). Anwendungsbeispiel: oss.str("");
- str(new_str): Mit dieser Methode können Sie den aktuellen ostringstream-Inhalt durch eine neue new_str-Zeichenfolge ersetzen. Wenn new_str == "" ist, wird der Stream gelöscht. Anwendungsbeispiel: oss.str("");
- clear(): Diese Methode setzt den internen Status des Ostringstream-Streams zurück und gibt ihn in seinen ursprünglichen Zustand zurück. Dadurch werden alle aufgezeichneten Daten gelöscht und der vorherige Inhalt geht verloren.
Sie können also eine der oben genannten Methoden verwenden, um den ostringstream zu bereinigen und bei Bedarf mit dem Schreiben neuer Daten zu beginnen.