迭代字符串中的行?

时间:2010-11-21 17:13:42

标签: c++ string boost

我正在尝试做这样的事情:

BOOST_FOREACH (const std::string& line, allLinesOf(someFileLoadedIntoString))
{
   ...
}

我想知道如何实现allLinesOf函数?谢谢!

更新:感谢您的回答。抱歉,但我忘了提一个重要的细节:在我的情况下,换行符是\ r \ n。

3 个答案:

答案 0 :(得分:5)

您可以使用std::getline

std::string line;
while(std::getline(file, line)) {
    // Ohai!
}

答案 1 :(得分:2)

嗯,你可以为std :: string编写一个自定义迭代器,它将遍历由换行符分隔的字符串段,并将一对std :: this这样的迭代器传递给BOOST_FOREACH

答案 2 :(得分:1)

您可以使用boost::tokenizer\n令牌来迭代线。