fork download
  1. #include <iostream>
  2. #include <iterator>
  3. #include <string>
  4. #include <algorithm>
  5.  
  6.  
  7.  
  8.  
  9. int main(int, char**) {
  10. std::vector<char> buffer{std::istream_iterator<char>{std::cin >> std::noskipws}, std::istream_iterator<char>{}};
  11. auto input = buffer.begin();
  12. auto const end = buffer.end();
  13. std::string const start_delimiter{"-Ingredients\n"};
  14. std::string const end_delimiter{"\n-Preparation"};
  15. input = std::search(
  16. input, end,
  17. start_delimiter.begin(), start_delimiter.end());
  18. while (input != end) {
  19. std::advance(input, start_delimiter.size());
  20. auto stop = std::search(input, end, end_delimiter.begin(), end_delimiter.end());
  21. // ------ Use --------
  22. std::string ingredients{input, stop};
  23. std::cout << "Found:\n" << ingredients << std::endl;
  24. // -------------------
  25. std::advance(stop, end_delimiter.size());
  26. input = std::search(stop, end,
  27. start_delimiter.begin(), start_delimiter.end());
  28. }
  29. return 0;
  30. }
Success #stdin #stdout 0s 3420KB
stdin
Blah blah
-Ingredients
A B
and
of course
C
-Preparation
Cook it?

-More blah bla

-Ingredients
- Cool Stuff
- Hot Stuff
Other things
-Preparation
Absolutely no idea
stdout
Found:
A B
and
of course
C
Found:
- Cool Stuff
- Hot Stuff
Other things