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

Как записывать и считывать не POD типы данных из бинарного файла? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Решения по Дейтелам http://www.cyberforum.ru/cpp-beginners/thread594591.html
Ребят, такой вопрос, купил книгу Deitel H.M., Deitel P.J. / Дейтел Х.М., Дейтел П.Дж. - Как программировать на С++, очень много заданий, что хорошо, но нет к ним решения в самой книге, то есть не получается себя проверить. Решения распространяются абсолютно бесплатно, но только для учителей, преподователей и тд, чтоб студенты не могли списать, но мне то для самопроверки надо, если кто надыбал...
C++ Округлить выводимые данные Надо сделать что если х у вводиш милионами числами выводило норм.. спасайте вообще хз как #include <iostream> #include <math.h> #include <conio.h> #include <iomanip> using namespace std; struct koord{double x,y;}; class vektors{ double x1,y1,x2,y2; public: void sl(double x1, double y1, double x2,double y2); http://www.cyberforum.ru/cpp-beginners/thread594583.html
C++ Используя одномерные массивы, составить программу
Используя одномерные массивы, составить программу. Есть массив n чисел. Вычислить сумму отрицательных элементов массива. C++ C#
Оптимизация цикла (перебор 5000000 элементов) C++
Можно ли как-то оптимизировать данный цикл? for (i=10000000; i<15000000; i++) { for (k = i, j = 0; j < 8; j++, k /= 10) mas = k % 10; if (mas+mas+mas + mas == mas+mas+mas+mas) sum_a++; } Где, i = Номер какого-то 8-значного числа.
C++ На плоскости задана своими координатами точка. Указать, где она расположена http://www.cyberforum.ru/cpp-beginners/thread594556.html
Можете помочь????Решить 2 задачи...На с++...Заранее Спасибо!!! 1. На плоскости ХОY задана своими координатами точка А. Указать, где она расположена (на какой оси или в каком координатном угле. 2. Описать функцию min(X) для определения минимального элемента линейного массива X, введя вспомогательную рекурсивную функцию minl(k), находящую минимум среди последних элементов массива X, начиная с k-го
C++ 8-и значное число типа int преобразовать в строчку char\string Подскажите, есть ли какая-нибудь функция, которая загоняет число в строчку. Например есть 8-и значное число (тип int) и мне нужно его запихать в переменную string типа. Желательно без делений :\ подробнее

Показать сообщение отдельно
Derpy
 Аватар для Derpy
3 / 3 / 0
Регистрация: 25.12.2011
Сообщений: 20
03.06.2012, 22:02     Как записывать и считывать не POD типы данных из бинарного файла?
Есть класса в котором часть полей не базовых динамических типов например vector list и подобные.
Как записать экземпляр класса в бинарный файл чтобы потом его нормально считать?
Через boost serialization? Или есть другие варианты?
Если делать через fwrite\fread считываются только поля базового типа.

Добавлено через 10 часов 24 минуты
Пример проблеммы
C++
1
2
3
4
5
6
7
8
9
10
class A
{
 int val;
}
 
class B
{
 string name;
 vector<A> v;
}
В данном случае нужно записать класс B

Добавлено через 11 часов 8 минут
Такой вариант для записи вектора работает но можно ли сделать как нибудь проще?
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
class A
{
    int val;
public:
    void write(ostream& f) const
    {
        f.write((char*)&val, sizeof(int));
    }
};
 
class B
{
    string name;
    vector<A> v;
public:
    void write()
    {
        ofstream f("dump.bin", ios_base::binary);
        size_t name_size = name.size();
        f.write((char*)&name_size, sizeof(size_t));
        for (int i = 0; i != name.size(); ++i)
        {
            f.write((char*)&name[i], sizeof(char));
        }
        size_t vec_size = v.size();
        f.write((char*)&vec_size, sizeof(size_t));
        for (int i = 0; i != v.size(); ++i)
        {
            v[i].write(f);
        }
    }
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru