Форум программистов, компьютерный форум CyberForum.ru

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

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

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

03.12.2010, 23:31. Просмотров 3543. Ответов 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;
как сделать возможным ввод имени файла с пробелами?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2010, 23:31     Передача потока по параметру функции
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2917 / 1346 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
04.12.2010, 00:00     Передача потока по параметру функции #2
Передавай параметр по ссылке или указателем.
В твоем случае, лучше по ссылке.

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

Вот если я работаю со ссылкой proc_file, мне ведь потом поток в этой же функции необязательно закрывать?
lemegeton
2917 / 1346 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
04.12.2010, 11:27     Передача потока по параметру функции #4
Не обязательно.
Yandex
Объявления
04.12.2010, 11:27     Передача потока по параметру функции
Ответ Создать тему
Опции темы

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