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

Как правильно передать объект fstream в функцию - C++

Восстановить пароль Регистрация
 
007imran007
1 / 1 / 0
Регистрация: 08.07.2012
Сообщений: 83
05.09.2014, 14:28     Как правильно передать объект fstream в функцию #1
При использовании следующего подхода возникают вопросы:
C++
1
int myFunc(fstream& data);
1. Если я открою поток из функции, можно ли его закрыть из тела программы?
2. Можно ли поочередно(после закрытия одного) открывать потоки ввода/вывода из одного и того же объекта?
3. Если при открытии потока я не укажу флаги ios::in/ios::out, но использую в ходе один из видов побитового сдвига(aka <<, >>), сможет ли компилятор понять, что именно я пытался сделать, например:
C++
1
2
3
4
5
int num;
fstream data;
data.open("text.txt");
data >> num;
data.close();
4. При открытии потока в теле программы и указании флага ios::in/ios::out, а также дальнейшей передачи объекта в функцию - будет ли она знать с каким флагом был открыт процесс, если нет - то как?
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FiLF
52 / 52 / 15
Регистрация: 05.09.2013
Сообщений: 1,088
05.09.2014, 14:31     Как правильно передать объект fstream в функцию #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Да. А почему бы тестовый пример не написать и не проверить всё это?
007imran007
1 / 1 / 0
Регистрация: 08.07.2012
Сообщений: 83
05.09.2014, 15:50  [ТС]     Как правильно передать объект fstream в функцию #3
Цитата Сообщение от FiLF Посмотреть сообщение
Да. А почему бы тестовый пример не написать и не проверить всё это?
Действительно, все потвердилось. Тестовый пример не начал создавать, т.к. уже итак писал тест на тест для программы) в итоге решил его таки создать и проверить - так намного интересней.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.09.2014, 16:11     Как правильно передать объект fstream в функцию #4
Цитата Сообщение от 007imran007 Посмотреть сообщение
Если при открытии потока я не укажу флаги ios::in/ios::out
При открытии потока присутствуют флаги выставленные по умолчанию. Для ifstream - ios::in, для ofstream - ios::out, для fstream - ios::in | ois::out.
Yandex
Объявления
05.09.2014, 16:11     Как правильно передать объект fstream в функцию
Ответ Создать тему
Опции темы

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