Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
14 / 14 / 1
Регистрация: 14.03.2015
Сообщений: 113
1

Возвращение функции, ifstream

11.06.2015, 08:31. Показов 2433. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Вывел открытие файла в функцию. А как мне вернуть значение/указатель?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void CreateDictionary(char *file_name)
{
    ofstream file_out(file_name);
    file_out.close();
}
 
void OpenDictionary(char *file_name)
{
    ifstream file_out(file_name);
    if (!file_out) {
        CreateDictionary(file_name);
    }
    else
    {
        int col=GetTheFileSize(file_out);
        if (col) {
             SetTheRandomWord(file_out,col);
         }
    }
}
Добавлено через 35 секунд
Понимаю, что void надо заменить на нечто другое, но вопрос на что?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.06.2015, 08:31
Ответы с готовыми решениями:

Возвращение результата функции bool и использование его в функции main()
У меня есть функция bool, которая имеет вид: bool Pisos(int row, int place) { if (...)...

Функции ifstream , ofstream. Исправить
Помогите исправить код пжлст, не работает прога( #include "stdafx.h" #include <iostream>...

Передача объекта ifstream в качестве аргумента функции
Как решить данную проблему? vector<DataPerson> GetVector() { ifstream file("input.txt"); if...

Максимальное значение _Count функции ifstream::read()
Доброго! Какое максимальное значение может принимать параметр streamsize _Count в функции...

4
Модератор
Эксперт С++
13508 / 10758 / 6412
Регистрация: 18.12.2011
Сообщений: 28,727
11.06.2015, 09:36 2
Лучший ответ Сообщение было отмечено fitochay как решение

Решение

Лучше не создавать объекты stream, а передавать уже созданные
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// создаем пустой файл и возвращаем истину, если создался
bool CreateDictionary(char *file_name)
{
    ofstream file_out(file_name);
    if(file_out)
    {
       file_out.close();
       return true;
    }
    return false;
}
 // передаем имя файла и ссылку на уже созданную переменную типа ifstream
bool OpenDictionary(char *file_name,ifstream& file_out)
{
    file_out.open(file_name);
    if (!file_out) 
        return CreateDictionary(file_out);
    int col=GetTheFileSize(file_out);
    if (col) 
      SetTheRandomWord(file_out,col);
    file_out.close();
    return true;
 }
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
11.06.2015, 10:54 3
Цитата Сообщение от zss Посмотреть сообщение
Лучше не создавать объекты stream, а передавать уже созданные
Если их нельзя копировать, еще не значит, что нельзя вернуть из функции:
C++
1
2
3
4
5
std::fstream&& openFile(const char* name)
{
    std::fstream f(name);
    return std::move(f);
}
P.S. вызывать close() перед уничтожением локального объекта потока смысла не много, он будет вызван автоматически деструктором.
0
Модератор
Эксперт С++
13508 / 10758 / 6412
Регистрация: 18.12.2011
Сообщений: 28,727
11.06.2015, 11:30 4
Цитата Сообщение от Tulosba Посмотреть сообщение
std::fstream&&
Как-то не укладывается в голове.
Что такое ссылка на ссылку?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
11.06.2015, 11:34 5
Цитата Сообщение от zss Посмотреть сообщение
Что такое ссылка на ссылку?
rvalue reference
1
11.06.2015, 11:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.06.2015, 11:34
Помогаю со студенческими работами здесь

Возвращение строки из функции
Не могу разобраться, почему возвращает кракозябру. Помогите пожалуйста найти ошибку. #include...

Возвращение значения функции
Я создала структуру и конструктор. Нужно создать функцию типа этой структуры add_one_minute,...

Возвращение значения из функции
Ребят, подскажите, когда функция возвращает значение из функции, то в памяти создается копия...

Возвращение результата из функции
Доброго времени суток. Ситуация следующая: в функции используется стек. В конце из нее возвращается...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru