Jak opróżnić ostringstream
Standardowa klasa ostringstream pozwala na wygodne inkrementalne budowanie rozmaitych napisów. Jest jednak mocno nieoczywiste, co powinniśmy zrobić aby opróżnić wypełniony już obiekt tego typu (np. by zacząć na nim zbierać jakiś inny napis). Nie ma żadnej metody typu reset a clear nic nie daje.
Jest jednak prosty sposób - należy zrobić:
ostringstream os; // ... używaliśmy już obiektu os, chcemy go teraz opróżnić os.str(""); // To jest właściwe opróżnienie bufora os.clear(); // To zeruje ewentualne flagi błędów strumienia
Zamiast os.str("") można dłużej ale oszczędniej napisać os.str(std::string()). Wywołanie os.clear() nie jest absolutnie niezbędne ale w niczym nie zaszkodzi.
- «Korzystaj z STL
- Z wydajnością biblioteki standardowej C++ bywa różnie»
- ↑C++ - sztuczki i niebezpieczeństwa