Возврат по ссылке файлового потока С++ [требует правки]

241
11 июня 2017, 18:37

Вот есть такой кусочек кода:

   std::ifstream& save_files(const std::string& n) 
{
     std::ofstream file(n);
     for (int i(0); i < 100; i++)
     file << -50 + rand() % 101 << std::endl;
     file.close();
     return std::ifstream(n);
}
template <class T>
std::vector<T>& inputfile(std::ifstream& f)
{
    std::cout << f.get() << std::endl;  // BUG
    std::istream_iterator<T> iter(f);
    std::vector<T> result(100);
    while (iter != std::istream_iterator<int>())
       result.push_back(*iter++);
     return result;
 }
int main()
{
    std::vector<int> v = inputfile<int>(save_files("numbers.txt"));
}

Почему-то, при возврате из функции save_files теряется ссылка на файл, соответственно чтение не производится. Подскажите, как правильно вернуть ссылку на поток?

READ ALSO
Создание COM DLL, регистрация с помощью regsvr32

Создание COM DLL, регистрация с помощью regsvr32

Нужен пример создания dll на языке C++, которая бы регистриролась бы с помощью regsvr32, и её можно было бы подключить к проекту на VB5

206
сортировка большого файла

сортировка большого файла

задача: удалить дубли (строки) из текстового файла (1 - 4GB), OS: Windows 7 x64, ОЗУ: 8GB, Perl (v524

328