fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <iterator>
  4. #include <string>
  5. #include <algorithm>
  6. class line {
  7. std::string data;
  8. public:
  9. friend std::istream& operator>>(std::istream &is, line &l)
  10. {
  11. return std::getline(is, l.data);
  12. }
  13. operator std::string() { return data; }
  14. };
  15.  
  16. int main()
  17. {
  18. std::vector<std::string> lines;
  19. std::copy(
  20. std::istream_iterator<line>(std::cin),
  21. std::istream_iterator<line>(),
  22. std::back_inserter(lines));
  23. std::cout << "there were " << lines.size() << " lines of input\n";
  24. }
  25.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Here is some text
with spaces
and multiple lines.
compilation info
/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/include/g++-v4/bits/stl_algobase.h: In static member function ‘static _OI std::__copy_move<<anonymous>, <anonymous>, <template-parameter-1-3> >::__copy_m(_II, _II, _OI) [with _II = std::istream_iterator<line, char, std::char_traits<char>, int>, _OI = std::back_insert_iterator<std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, bool <anonymous> = false, bool <anonymous> = false, <template-parameter-1-3> = std::input_iterator_tag]’:
/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/include/g++-v4/bits/stl_algobase.h:396:   instantiated from ‘_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = false, _II = std::istream_iterator<line, char, std::char_traits<char>, int>, _OI = std::back_insert_iterator<std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >]’
/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/include/g++-v4/bits/stl_algobase.h:435:   instantiated from ‘_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = false, _II = std::istream_iterator<line, char, std::char_traits<char>, int>, _OI = std::back_insert_iterator<std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >]’
/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/include/g++-v4/bits/stl_algobase.h:466:   instantiated from ‘_OI std::copy(_II, _II, _OI) [with _II = std::istream_iterator<line, char, std::char_traits<char>, int>, _OI = std::back_insert_iterator<std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >]’
prog.cpp:22:   instantiated from here
/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/include/g++-v4/bits/stl_algobase.h:312: error: passing ‘const line’ as ‘this’ argument of ‘line::operator std::string()’ discards qualifiers
stdout
Standard output is empty