我正在从文件中读取字符串直到遇到分隔符,即美元符号。但输入迭代器跳过空格,所以创建的字符串没有任何空格。在这种情况下,这不是我想要的。有没有办法停止跳过行为?如果有,该如何实现?
以下是我的测试代码:
以下是我的测试代码:
#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;
}