Connecting Tech Pros Worldwide Forums | Help | Site Map

std::stringstream && std::string

KidLogik
Guest
 
Posts: n/a
#1: Jul 22 '05
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.


Ivan Vecerina
Guest
 
Posts: n/a
#2: Jul 22 '05

re: std::stringstream && std::string


"KidLogik" <Sir_Ciph3r@nospam.com> wrote in message
news:pf2l30hcaqe0sak1pjs7k7qpf5ohct1rm0@4ax.com...
Hi,[color=blue]
> I am using std::stringstream && std::string to parse a text file ->
>
> std::ifstream in;
> std::string s;
> std::streamstring ss;[/color]
You mean stringstream I guess (and istringstream would actually be
best, once you follow the approach below).
[color=blue]
> 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;[/color]
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
--
http://ivan.vecerina.com/contact/?subject=NG_POST <- e-mail contact form


Closed Thread


Similar C / C++ bytes