stringstream

Splitting a word from a read file.

I'm trying to read the contents of a text file into the attributes of a class. The file is structured in such a way that each line contains all the information needed for one object of the class. One line might look like: TYC 9537 00066 1 341.76920751 -88.32499920 8.762 9.294 mc1 hd 210531 0.385 8.80 P F5 5 6440 F5 V What...

Using stringstream and an int variable in C++ to verify that input is an int

void get_english_input() { string input = " "; stringstream my_string(input); int ft; double in; while(true) { cout << "Enter an integer value of feet." << endl; getline(cin, input); my_string << input; if(my_string >> ft) break; cout << "Invalid input! Please t...

Rounding off floats with ostringstream

Hi, I have an issue regarding conversion from float to c++ string using ostringstream. Here is my line: void doSomething(float t) { ostringstream stream; stream << t; cout << stream.str(); } when t has value -0.89999 it is round off to -0.9, but when it's value is 0.0999 or lesser than this say 1.754e-7, it just prints w...

how to read stringstream with dynamic size?

I wanted to experiment with stringstream for an assignment, but I'm a little confused on how it works. I did a quick search but couldn't find anything that would answer my question. Say I have a stream with a dynamic size, how would I know when to stop writing to the variable? string var = "2 ++ asdf 3 * c"; stringstream ss; ss <<...

How does std::stringstream handle wchar_t* in operator<<?

Given that the following snippet doesn't compile: std::stringstream ss; ss << std::wstring(L"abc"); I didn't think this one would, either: std::stringstream ss; ss << L"abc"; But it does (on VC++ at least). I'm guessing this is due to the following ostream::operator<< overload: ostream& operator<< (const void* val ); Does this h...

num_get facet and stringstream conversion to boolean - fails with initialised boolean?

I have inherited a template to convert a string to a numerical value, and want to apply it to convert to boolean. I am not very experienced with the stringstream and locale classes. I do seem to be getting some odd behaviour, and I am wondering if someone could please explain it to me? template<typename T> T convertFromString( const ...

stringstream and french locale (French_France.1252)

std::stringstream stream_french; stream_french.imbue(std::locale("")); // French_France.1252 stream_french << 1000; std::string value_french = stream_french.str(); This code will convert 1000 to string "1 000" but the value of value_french[1] is -96 and not 32, why is that ? value_french[0] = 49 value_french[1] = -96 value_french[2] ...

Stringstream write() problem while "overwriting"

Currently, I have a stringstream called Data. I am seeking to the beginning of the stringstream by using: Data.seekp(0, std::ios::beg); Then, I try writing 2 integers to the first 8 bytes of the stringstream (previously, the first 8 bytes were set to 0) Data.write(reinterpret_cast<char*>(&dataLength),sizeof(int)); Data.write(reinterp...

How does stringstream work internally?

I'm asking in context of performance. Is stringstream simply a string/vector, so writing to it may result in its whole content being copied to a bigger chunk of memory, or is it done in a more tricky way (say, a list of strings or whatever)? ...

Copy data from fstream to stringstream with no buffer?

Is there anyway I can transfer data from an fstream (a file) to a stringstream (a stream in the memory)? Currently, I'm using a buffer, but this requires double the memory, because you need to copy the data to a buffer, then copy the buffer to the stringstream, and until you delete the buffer, the data is duplicated in the memory. std:...