Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
ниначмуроФ
846 / 530 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
1

Передача файлового потока в функцию

19.03.2010, 21:39. Показов 1146. Ответов 3
Метки нет (Все метки)

Здрасти.


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

C++
1
2
3
4
5
6
7
8
void readFile( ???????????? ){
    char ch;
    while (in){
        in.get(ch);
        cout<<ch;
        getch();
    }
}
Добавлено через 8 минут
я написал второй вариант:

C++
1
2
3
4
5
6
7
8
9
void readFile(char* pathToFile){
    ifstream in(pathToFile);
    char ch;
    while (in){
        in.get(ch);
        cout<<ch;
        getch();
    }
}
какеой правильнее использовать ? первый вариант или второй?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.03.2010, 21:39
Ответы с готовыми решениями:

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

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

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

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

3
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
11032 / 6984 / 1651
Регистрация: 25.07.2009
Сообщений: 12,739
19.03.2010, 21:44 2
PointsEqual, В функцию открытый файл вот так можно передать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
...
void myFunc (std::istream& ist, std::vector<std::string>& v){
  std::string buf;
  while ( ist >> buf )
    v.push_back(buf);
}
...
std::vector<std::string> vec;
std::ifstream fin("file.txt"); 
// проверить удачность открытия файла...
myFunc(fin, vec);
fin.close();
...
1
ниначмуроФ
846 / 530 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
19.03.2010, 21:45  [ТС] 3
easybudda, а какой вариант лучше исполльзовать? Передавать файл или путь к нему?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
11032 / 6984 / 1651
Регистрация: 25.07.2009
Сообщений: 12,739
19.03.2010, 21:51 4
Цитата Сообщение от PointsEqual Посмотреть сообщение
какой вариант лучше исполльзовать?
Не знаю, если честно, какой из них лучше, знаю только, что в любом случае нужно проверять результат каждого действия с файлом... То бишь приведённую мной в пример функцию лучше было бы как-то так переписать:
C++
1
2
3
4
5
6
bool myFunc (std::istream& ist, std::vector<std::string>& v){
  std::string buf;
  while ( ist >> buf )
    v.push_back(buf);
  return !ist.bad();
}
и проверять возвращаемое значение - если true, значит всё сложилось...
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.03.2010, 21:51

Переключение файлового потока ввода вывода
Есть прога. Если закоментить первый цикл то будет читать из файла, если второй то будет его писать....

Перевод потока из файлового ввода/вывода в консольный ввод/вывод
Есть кусок программы: freopen (&quot;G:\\input.txt&quot;, &quot;r&quot;, stdin); freopen (&quot;G:\\output.txt&quot;,...

Опишите переменную inFile для входного файлового потока в режиме чтения
подскажите, как сделат это? Опишите переменную inFile для входного файлового потока в режиме...

Ошибка при использовании getline для считывания строки из файлового потока
Ошибка находится в 24 строке на точке. Код, подобный этому (а в этой строке фактически 1 в 1...


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

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

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