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

fwrite\fread: чтение и запись в бинарные файлы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ ассоциативный массив map c двумерным массивом http://www.cyberforum.ru/cpp-beginners/thread869732.html
Искал информацию в интернете но безрезультатно. Необходимо сделать ассоциативный массив с со строковым ключом и двумерным массивом 3х3 в качестве значения ключа. создаю ассоциативный массив: map...
C++ Ввод текста в графическом режиме Здравствуйте, можно ли вводить текст в графическом режиме (консольная графика)? Как это реализовать? http://www.cyberforum.ru/cpp-beginners/thread869724.html
Удаление памяти посредством delete[] C++
Добрый день! Столкнулся с проблемой: при удалении выделенной памяти, программа зависает, будто не способна выполнить данный оператор. Ошибок при компиляции не возникает, может кто-то знает, в чём...
Разработать класс Car (автомобиль) C++
Разработать класс Car (автомобиль). Объявить переменные типа этого класса. Определить данные и методы.
C++ Деление стороны квадрата на N равных частей http://www.cyberforum.ru/cpp-beginners/thread869698.html
Здравствуйте, уважаемые форумчане! Нужна помощь со следующим заданием: "Каждую сторону квадрата разделить на N равных частей. Соединить все точки разбиения, включая вершины, отрезками. Число...
C++ Вычислить значения функции Помогите пожалуйста написать программы на turbo C++. Задания простые, а я не могу((((. 1)Вычислить значения функции при A=1.5, B=2, C=2.5 (константы) и произвольном x (ввести с клавиатуры).... подробнее

Показать сообщение отдельно
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2013, 14:09
Цитата Сообщение от Gerbasha Посмотреть сообщение
В общем решил проблему так:
Это все очень криво. Не видно как объекты класса создаются. Если поле класса указатель, то под него, в конструкторе, память обычно выделяется. А если память выделена, то в неё уже можно читать из файла, а не создавать дополнительную переменную, адрес которой присваивается полю-указателю.

Добавлено через 3 минуты
Это код только для проверки (как приблизительно должно выглядеть):
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
class tPoint
{
private:
    float mX,mY;
    float *mDescriptor;
public:
    tPoint()
    {
        mX = 0.0;
        mY = 0.0;
        mDescriptor = new float(0.0);
    }
 
    tPoint(float x, float y, float z)
    {
        mX = x;
        mY = y;
        mDescriptor = new float(z);
    }
 
    void Write(FILE *f)
    {
        fwrite(&mX, sizeof(float), 1, f);
        fwrite(&mY, sizeof(float), 1, f);
        fwrite(mDescriptor, sizeof(float), 1, f);
    }
 
    void Read(FILE *f)
    {
        fread(&mX, sizeof(float), 1, f);
        fread(&mY, sizeof(float), 1, f);
        fread(mDescriptor, sizeof(float), 1, f);
       }
       
     void Print()
     {
        printf("%f\n",  mX);
        printf("%f\n", mY);
        printf("%f\n", *mDescriptor);
     }
};
 
int main()
{
 
    tPoint obj(5.0, 5.0, 5.0);
    FILE *f;
    f = fopen("info.dat", "wb");
    obj.Write(f);
    fclose(f);
    
    tPoint obj2;
    f = fopen("info.dat", "rb");
    obj2.Read(f);
    fclose(f);
               obj2.Print();
              
 return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru