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

Запись данных класса в файл - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция http://www.cyberforum.ru/cpp-beginners/thread326699.html
Нужна помощь в решении этой функции. Помогите пжл Зарание спс.
C++ Разница между seekg() и seekp() В чём же разница? Вот допустим открыл я файл: fstream file("trans.dat",ios::out|ios::in|ios::binary); Какая разница между file.seekg(0) и file.seekp(0) в этом случае?Да и есть ли она вообще?... http://www.cyberforum.ru/cpp-beginners/thread326644.html
Игра Ним методом динамического программирования C++
добрый день помогите решить задачу методом динамического программирования. Игра Ним с одной кучей камней и с инвертированными правилами (взявший последний камень проигрывает), нисходящее и...
С++ 2010 C++
Дайте сылку на С++ 2010 пожалуста:wall:
C++ Программа не воспринимает вводимый текст. Что нужно добавить чтобы она заработала? http://www.cyberforum.ru/cpp-beginners/thread326592.html
#include <iostream> using namespace std; int main () { int gallons, liters; cout << "Vvedite chislo gallonov: "; cin >> gallons;
C++ Дана строка из 32 символов Дана строка из 32 символов, содержащая только символы '0' и '1'. 1)Строка представляет целое число, заданное в двоичном дополнительном коде. Преобразовать эту строку в целое значение. 2) Строка... подробнее

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
30.06.2011, 13:27
Gepar, Почитай. Полезная штука. В твоем случае для сериализации объекта класса выйдет так.

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
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/serialization/string.hpp>
#include <string>
#include <iostream>
#include <fstream>
 
class ClientData
{
private:
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive& ar, const unsigned int version)
{
    ar & ID;
    ar & name;
    ar & balance;
}
//Здесь то, что и было. Писать резона не вижу.
};
 
bool operator ==(const ClientData& first, const ClientData& second)
{
    return first.getID() == second.getID() &&
             first.getName() == second.getName() &&
             first.getBalance() == second.getBalance();
}
 
void save(const ClientData& cl, const std::string& file_name)
{
    std::ofstream ofs(file_name.c_str());
    boost::archive::text_oarchive oa(ofs);
    oa << cl;
}
 
void load(ClientData& cl, const std::string& f_name)
{
    std::ifstream ifs(f_name.c_str());
    boost::archive::text_iarchive ia(ifs);
    ia >> cl;
}
 
int main()
{
    ClientData cl(1, "I", 500);
    const std::string f_name = "ser.dat";
    save(cl, f_name);
    ClientData new_cl;
    load(new_cl, f_name);
    std::cout << std::boolalpha << (cl == new_cl) << '\n';
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru