std::stringstream && std::string

K

KidLogik

Hello!

I am using std::stringstream && std::string to parse a text file ->

std::ifstream in;
std::string s;
std::streamstring ss;
int n;

I grab each line like so -> std::getline(in,s);

I then do this to get the string into a stringstream -> ss << s;

I am using a std::stringstream because it makes extracting data easier
like so -> ss >> n;

Is this the proper way to use std::stringstream? How do I blank out
the std::stringstream object because each time I do a (ss << s;) the
stream keeps concatenating onto itself...how do I blank out the stream
to add a new string to it?

Thanks.
 
I

Ivan Vecerina

Hi,
I am using std::stringstream && std::string to parse a text file ->

std::ifstream in;
std::string s;
std::streamstring ss;
You mean stringstream I guess (and istringstream would actually be
best, once you follow the approach below).
int n;

I grab each line like so -> std::getline(in,s);

I then do this to get the string into a stringstream -> ss << s;
What you really want to do is either:
- use the str(s) member function: ss.str(s); // resets buffer to s
- re-create a new istringstream instance for every line:
std::istringstream ss(s);
(the latter will eventually be less efficient on some platforms).


Regards,
Ivan
 
A

Alberto Barbati

What you really want to do is either:
- use the str(s) member function: ss.str(s); // resets buffer to s

By using ss.str(s) you don't even need to use "ss << s;" and it should
also be more efficient. In that case you don't need to use a
stringstream, an istringstream is sufficient.

Regards,

Alberto
 

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

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top