I read from the file to the line until I get to the separator character, the dollar sign. But the input iterator skips spaces, so the generated string has no spaces. not what i want in this case. Is there any way to stop skipping behavior? And if so, how?
Here is my test code.
#include <iostream> #include <fstream> #include <iterator> #include <string> // istream iterator is skipping whitespace. How do I get all chars? void readTo(std::istream_iterator<char> iit, std::string& replaced) { while(iit != std::istream_iterator<char>()) { char ch = *iit++; if(ch != '$') replaced.push_back(ch); else break; } } int main() { std::ifstream strm("test.txt"); std::string s; if(strm.good()) { readTo(strm, s); std::cout << s << std::endl; } return 0; }
source share