Мне задали вопрос, чтобы написать функцию, которая принимает и возвращает istream&
. Функция должна читать поток до тех пор, пока он не достигнет EOF
, а считанное значение должно быть напечатано со стандартным выводом.
Вот мой код, который работает почти нормально:
#include<iostream>
#include<string>
#include<istream>
std::istream& fun(std::istream &ob)
{
std::string s;
while((ob>>s)&&(!ob.eof()))
std::cout<<s<<'\n';
return ob;
}
int main()
{
std::istream &obj = fun(std::cin);
return 0;
}
Единственная часть что не происходит, если программа (istream
) достигает EOF
- мне нужно вручную ввести ctrl + d
на терминале, чтобы остановить l oop - есть ли другой способ сделать это?