代码之家  ›  专栏  ›  技术社区  ›  Alex Jenter

在字符串中的行上迭代?

  •  1
  • Alex Jenter  · 技术社区  · 14 年前

    我想做这样的事:

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

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

    更新:谢谢你的回答。抱歉,我忘了提到一个重要的细节:在我的例子中,换行符是\r\n。

    3 回复  |  直到 14 年前
        1
  •  5
  •   craymichael André Caron    7 年前

    你可以用 std::getline .

    std::string line;
    while(std::getline(file, line)) {
        // Ohai!
    }
    
        2
  •  2
  •   user500944user500944    14 年前

    嗯,您可以为std::string编写一个自定义迭代器,它将在由换行符分隔的字符串段上进行迭代,并传递一对std::迭代器来增强

        3
  •  1
  •   Kirill V. Lyadvinsky    14 年前

    你可以用 boost::tokenizer 具有 \n 要在行上迭代的标记。