strange behavior of stringstream

L

linyanhung

In case A(see below), ss.clear() doesn't work and have no error
message. cout<<ss.str() shows "xcv".

In case B ss.clear() works normally and cout<<ss.str() shows
nothing.

Can anyone tell me why ? Thanks.

Case A:

stringstream ss;
ss<<"xcv";
{
ss.clear();
cout<<ss.str();
}

---------------------------
Case B:

{
stringstream ss;
ss<<"xcv";
ss.clear();
cout<<ss.str();

}
 
A

Alf P. Steinbach

* (e-mail address removed):
In case A(see below), ss.clear() doesn't work and have no error
message. cout<<ss.str() shows "xcv".

In case B ss.clear() works normally and cout<<ss.str() shows
nothing.

Can anyone tell me why ? Thanks.

Case A:

stringstream ss;
ss<<"xcv";
{
ss.clear();
cout<<ss.str();
}

---------------------------
Case B:

{
stringstream ss;
ss<<"xcv";
ss.clear();
cout<<ss.str();

}

There should be no behavioral difference.

'clear' doesn't clear the contents of the stream.

It's inherited from std::ios, and clears the state flags.
 
L

linyanhung

Thanks Steinbach .

But under the VS2005 they do have behavioral difference.

Now I use ss.str(""); instead of ss.clear() to solve the problem.


Alf P. Steinbach ¼g¹D¡G
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,535
Members
45,008
Latest member
obedient dusk

Latest Threads

Top