我想从 istream
中读取一行文本并将其拆分成单词。我当前的代码是
vector<string>((istream_iterator<string>(f)),
istream_iterator<string>());
其中 f 是一个 ifstream
目的。但是,这会读取到文件末尾,我想在它到达换行符时停止读取。有什么办法可以做类似 istream_iterator<string>("\n")
的事情吗?所以 vector 构造函数会在到达换行符时停止向后推?
最佳答案
使用std::getline()
读取一行,然后使用std::istringstream
从该行读取单词,例如:
std::string line;
std::getline(f, line);
std::istringstream iss(line);
std::vector<std::string> words(
std::istream_iterator<std::string>(iss),
std::istream_iterator<std::string>()
);
关于c++ - 自定义 istream 结束迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54965470/