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

Передача указателя на файл в метод - C++

Восстановить пароль Регистрация
 
alex.gorbach
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 35
16.10.2012, 22:17     Передача указателя на файл в метод #1
Доброго вечера всем. Такая проблема: C++ Builder ругается на строку в описании класса, пример под катом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class OwnThing
{
        char    *title;
        char    *type;
        int     age;
        float   weight;
public:
                OwnThing();
                OwnThing(char*, char*, int, float);
                OwnThing(OwnThing&);
                OwnThing(char*);
virtual         ~OwnThing();
        void    SetTitle(char*);
        char*   GetTitle();
        void    SetType(char*);
        char*   GetType();
        void    SetAge(int);
        int     GetAge();
        void    SetWeight(float);
        float   GetWeight();
virtual void    Output();
virtual void    Input();
virtual void    SaveToFile(FILE*);    //вот в этих строках
virtual void    LoadFromFile(FILE*);  //ругается, ошибка после FILE*: ')' expected 
};
Метод должен записать(считать) текущий объект в файл, открытый заранее и переданный в этот метод.
С любыми другими типами проходит, только не с этим. Наверно, слона-то я и не заметил, подтолкните к ответу, пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2012, 22:17     Передача указателя на файл в метод
Посмотрите здесь:

Передача указателя на метод в функцию C++
C++ Передача указателя на функцию
Передача указателя в функцию C++
Передача в функцию указателя C++
C++ Передача указателя в функцию
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
16.10.2012, 23:28     Передача указателя на файл в метод #2
Цитата Сообщение от alex.gorbach Посмотреть сообщение
C++ Builder ругается на строку в описании класса
C++
1
#include <cstdio>
и вообще зачем использовать с++ вместе с си-шной конструкцией? чем вам не нравится istream?

Добавлено через 1 минуту
C++
1
virtual void    LoadFromFile(istream& in);
теперь можно хоть с клавиатуры считывать, хоть с файла или еще какого-нибудь потока

Добавлено через 1 минуту
А еще лучше сделать так
C++
1
virtual void    LoadFromFile(string& filename);
а уже в методе открыть файл и загрузить данные
alex.gorbach
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 35
16.10.2012, 23:30  [ТС]     Передача указателя на файл в метод #3
panicwassano, на плюсплюс с Си недавно перешел, вот и использую, как привык. Попробую с входным потоком, как вы сказали. Насчет передачи имени файла - я думал, но если в цикле 100 объектов записывать, не будет ли грузнее 100 раз открывать-закрывать файл?
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
16.10.2012, 23:35     Передача указателя на файл в метод #4
а зачем вам 100 объектам открывать один и тотже файл, где здесь логика?
alex.gorbach
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 35
16.10.2012, 23:37  [ТС]     Передача указателя на файл в метод #5
panicwassano, мне нужно записать в один файл объект класса-коллекции объектов этого класса.
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
16.10.2012, 23:42     Передача указателя на файл в метод #6
как вариант для файла написать обертку в виде синглтона и вызывать в каждом объекте

Добавлено через 11 секунд
ну либо просто ссылку на открытый поток передайте
alex.gorbach
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 35
17.10.2012, 00:07  [ТС]     Передача указателя на файл в метод #7
panicwassano, сделал, как вы сказали, через входной поток ifstream, ошибка в том же месте, та же:
C++
1
2
3
4
...
virtual void    SaveToFile(ifstream&);
virtual void    LoadFromFile(ofstream&);
...
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
17.10.2012, 00:16     Передача указателя на файл в метод #8
iostream или iosfwd подключил?

Добавлено через 1 минуту
Да, и они ещё пространстве имён std.
alex.gorbach
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 35
17.10.2012, 00:18  [ТС]     Передача указателя на файл в метод #9
Somebody, fstream подключил, неймспейс тоже. Та же ерунда. Да и ругается не на неизвестный идентификатор, а хочет закрыть скобку пораньше моего.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2012, 11:42     Передача указателя на файл в метод
Еще ссылки по теме:

передача указателя C++
C++ Передача указателя
Передача указателя в структуру C++

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

Или воспользуйтесь поиском по форуму:
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
17.10.2012, 11:42     Передача указателя на файл в метод #10
alex.gorbach, как пример, сами подправьте под свое
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
using namespace std;
 
class OwnThing
{
public:
    void    SaveToFile(istream& in);
    void    LoadFromFile(istream& in){
        in >> i;
    };
private:
    int i;
};
 
int main(){
    OwnThing own;
    own.LoadFromFile(cin);
    
    return 0;
}
Yandex
Объявления
17.10.2012, 11:42     Передача указателя на файл в метод
Ответ Создать тему
Опции темы

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