Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.81
oinari
5 / 5 / 0
Регистрация: 18.10.2009
Сообщений: 69
#1

Передача потока по параметру функции - C++

03.12.2010, 23:31. Просмотров 4024. Ответов 3
Метки нет (Все метки)

Доброго времени суток.
Есть пара вопросов

Допустим у нас имеется функция открытия файла:

C++
1
2
3
4
5
6
7
8
9
10
int open_file()
{
   char file_name[50];
   cin >> file_name;
   ifstream file_obf(file_name); //communication stream output with a file
   if(file_obf.is_open()) cout << "The stream is successfully connected with a file.\n";
   //работаем с ним если открылся
   file_obf.close();  //closing stream
   return 1;
}
и чтобы лишний раз не открывать файл в новой функции, где мы будем также с ним работать,
я хочу передать в параметрах сам поток.

вот пример:

C++
1
2
3
4
5
6
7
8
9
RemoveSLCom(file_obf);
//--------------------------------
int RemoveSLCom(ifstream proc_file)
{
    if(proc_file.is_open())     cout <<"1";
    else cout << "0";
    proc_file.close();  //closing stream
    return 1;
}
Компилятор выдал:
File3.cpp(29): parsing: int open_file()
File3.cpp(55): decision to instantiate: ifstream::basic_ifstream(ifstream &)
--- Resetting parser context for instantiation...
1. Как это осуществить или я могу заного во второй ф-ии связать уже новый поток с этим же файлом.
2. Строка
C++
1
cin >> file_name;
как сделать возможным ввод имени файла с пробелами?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2010, 23:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача потока по параметру функции (C++):

Передача потока (текущ.позиции курсора в файле) как аргумент функции - C++
Всем привет! Столкнулся с такой проблемой, Конструкция довольно тяжелая для меня. Мне нужно чтобы я открывал файл для чтения, затем...

Описать процедуру maxmin (x, y) присваивает параметру х большее из вещественных чисел x и y, а параметру у -- меньшее - C++
Процедура maxmin (x, y) присваивает параметру х большее из вещественных чисел x и y, а параметру у -- меньшее. Описать данную процедуру и...

Передача потока в функцию - C++
Добрый вечер. Столкнулся с вопросом: &quot;Как передать поток в качестве параметра функции?&quot; Есть вариант, чтобы передавать только имя файла, а...

Передача потока в функцию - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; void out(std::ofstream&amp; streamOut) { streamOut &lt;&lt; &quot;Text&quot;; } int main() ...

Передача потока в конструктор - C++
Подскажите пожалуйста, как создать динамический массив объектов класса, передавая в конструктор потока. ifstream f(&quot;data.txt&quot;,...

Передача файлового потока в функцию - C++
Здрасти. ifstream in(&quot;1.txt&quot;); что возвращает in? как передать этот поток (in) в функцию которая выводит символы? void...

3
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
04.12.2010, 00:00 #2
Передавай параметр по ссылке или указателем.
В твоем случае, лучше по ссылке.

C++
1
2
int RemoveSLCom(ifstream &proc_file)
...
1
oinari
5 / 5 / 0
Регистрация: 18.10.2009
Сообщений: 69
04.12.2010, 10:20  [ТС] #3
lemegeton, все, спасибо, заработало)

Вот если я работаю со ссылкой proc_file, мне ведь потом поток в этой же функции необязательно закрывать?
0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
04.12.2010, 11:27 #4
Не обязательно.
0
04.12.2010, 11:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2010, 11:27
Привет! Вот еще темы с ответами:

Передача потока как параметра в функцию - C++
Дорогие форумчане! Повторяю пример из книжки, пока остановился из-за ошибки. //Программа &quot;Функция ввода вопросов, объявление&quot; ...

Передача файлового потока как параметр-ссылка - C++
Как привести в реальность эту конструкцию? VS6 после ifstream fin (&quot;test&quot;); res = wordsearch (fin); выдавала...

return в функции потока - C++
Куда возвращается значение, указанное в return функции созданного потока?

Передача объектов функции. Два обращения к функции деструктора - C++
В книге этот код должен 2 раза обращаться к функции деструктора, то есть результатом программы должно быть: Создание 10 Разрушение ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru