У меня есть функция, которая получает переменную ifstream, но мне приходится писать в этот файл в некоторых ситуациях. Например.ifstream -> ofstream C++
main()
{
ifstream dataFile("filename.txt");
foo(dataFile);
}
void foo(ifstream &df)
{
if(df.good()) {...}
else {
//here I need to write str into the "filename.txt"
//but I don't know how to do it properly!
}
}
Как я могу себе представить, самый простой способ, чтобы получить как-то имя файла из ДФ в Foo() ... Но как?
себе: Я НЕ МОЖЕТ использовать fstream. По какой-то причине У меня есть только ifstream & и не знаю название файла. . Я получаю ifstream & из некоторой функции закрытой библиотеки.
Не пропускайте поток по значению, передайте его по ссылке. 'void foo (ifstream & df)' – andre
Можете ли вы передать имя файла в качестве параметра foo? Если вы можете, просто создайте экземпляр std :: ostream (filename) внутри foo и поработайте с ним. В противном случае вы можете заменить ifstream на fstream (который поддерживает оба) ввода и вывода. – utnapistim
Не можете ли вы изменить функцию так, чтобы вместо 'ifstream' вместо' ifstream' вместо 'fstream' потребовался' fstream'? 'Ifstream' специально предназначен для * чтения * из файла, а не для записи. –