Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to reset stringstream object

I have a stringstream object and I am wondering how to reset it.

stringstream os;
for(int i = 0; i < 10; ++i){
        value = rand() % 100;
        os<<value;
        cout<<os.str()<<" "<<os<<endl;
        ntree->insert(os.str());
        //I want my os object to be reset here
    }
like image 390
realtekme Avatar asked Jul 19 '13 10:07

realtekme


2 Answers

If you want a new ostringstream object each time through the loop, the obvious solution is to declare a new one at the top of the loop. All of the ostream types contain a lot of state, and depending on context, it may be more or less difficult to reset all of the state.

like image 154
James Kanze Avatar answered Sep 24 '22 01:09

James Kanze


If you want to replace the contents of the stringstream with something else, you can do that using the str() method. If you call it without any arguments it will just get the contents (as you're already doing). However, if you pass in a string then it will set the contents, discarding whatever it contained before.

E.g.:

std::stringstream os;
os.str("some text for the stream");

For more information, check out the method's documentation: http://www.cplusplus.com/reference/sstream/stringstream/str

like image 23
Peter Bloomfield Avatar answered Sep 25 '22 01:09

Peter Bloomfield