Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Можно ли использовать несколько раз setlocale? Если да, то как? Можно ли использовать несколько раз setlocale? Если да, то как ?Мне это нужно только лишь потому, что я хочу использовать ASCII символы из раскладки "ru" (например, ╔║═ и прочее),... https://www.cyberforum.ru/ cpp-beginners/ thread2490796.html C++ Правильная работа с заголовочными файлами
Добрый день! Данная тема неоднократно подымалась на форуме, но конкретно для моей ситуации ответ увы найти не удалось. Суть проблемы, есть у нас два файла A.h и B.h A.h #ifndef A_H #define A_H...
C++ Невозможно определить переменную абстрактным типом Добрый день! Имеется следующий код: #include <iostream> #include <vector> using namespace std; namespace some { class One https://www.cyberforum.ru/ cpp-beginners/ thread2490768.html C++ Функция перевода секунд в соответствующее количество часов, минут, секунд https://www.cyberforum.ru/ cpp-beginners/ thread2490767.html
Написать программу, в которой пользователь задаѐт количество секунд. Это значение передаѐтся в процедуру, которая переводит секунды в соответствующее количество часов, минут, секунд и выводит...
C++ Первый четный элемент двумерного массива
Почему не выводится первый четный элемент в массиве? как то в хаотичном порядке каждый раз выдает четное число int main() { setlocale(LC_ALL, "rus"); int arr; int chet; cout << "Ввод...
C++ Сумма чисел от x до Y В квадрате https://www.cyberforum.ru/ cpp-beginners/ thread2490751.html
Программа для расчёта суммы чисел от x до y в квадрате #include "pch.h" #include <iostream> #include <cstdlib> using namespace std; int main() { //Изменение кодировки консоли system("chcp...
C++ Сравнить первую и последнюю цифры числа https://www.cyberforum.ru/ cpp-beginners/ thread2490717.html
Привет. Как сделать программу в которую ты вводишь число,а она сравнивает равны ли первая и последняя цифры числа. Заранее спасибо
C++ Добавьте к каждому введенному числу типа doube единицу измерения
Добавьте к каждому введенному числу типа douЫe единицу измерения Допустимыми являются четыре единицы измерения: cm, m, in, ft. Примите следующие коэффициенты преобразования: lm = lOOcm, 1in =...
C++ Предложить тесты, на которых программа даст сбой Доброго вам времени суток, уважаемые форумчане. Недавно я наткнулся на - с виду - несложную задачку. Вот условие: Уравнение (Время: 1 сек. Память: 16 Мб Сложность: 17%) Вася в школе изучил... https://www.cyberforum.ru/ cpp-beginners/ thread2490630.html C++ Вычисление значения функции exp(x) заданной разложением в ряд Тейлора Помогите, пожалуйста, написать программу. Вычислить выражение ex=1+x+x2/2!+x3/3!+ λ +xn/n!+ λ c точностью ε (значения x и ε вводятся с клавиатуры). https://www.cyberforum.ru/ cpp-beginners/ thread2490464.html
C++ В чём отличие между ++i и i++?
В чём отличие между ++i и i++? 1)Между операциями нет разницы 2)Первая операция увеличивает i, а вторая — уменьшает
C++ Какой из циклов, написанных ниже, выведет на экран все числа, которые только есть в массиве? https://www.cyberforum.ru/ cpp-beginners/ thread2490423.html
int data = { 7, 5, 5, 7, 6, 4, 3 }; Какой из циклов, написанных ниже, выведет на экран все числа, которые только есть в массиве? for (int i ; i < 7; ++i) cout << data << " "; for...
Мозгоправ
1729 / 1023 / 468
Регистрация: 01.10.2018
Сообщений: 2,136
Записей в блоге: 2
14.08.2019, 15:28 0

Чтение данных для объекта класса из файла - C++ - Ответ 13770542

14.08.2019, 15:28. Показов 1506. Ответов 9
Метки (Все метки)

Лучший ответ Сообщение было отмечено royd как решение

Решение

Цитата Сообщение от royd Посмотреть сообщение
Спасибо , пойду читать по библиотеке boost )
royd, boost - это само-собой... Но можно обойтись и стандартными средствами.
Схематично это выглядит так:
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
 
using namespace std;
 
struct Data {
    vector<string> v;
    int other_data;
    
    Data() : other_data(42) {
    }
    
    bool write(ostream &os) {
        size_t tmp;
        tmp = v.size();
        os.write((const char *)&tmp, sizeof(size_t));
        for (size_t i = 0; i < v.size(); ++i) {
            tmp = v[i].size();
            os.write((const char *)&tmp, sizeof(size_t));
            os.write(v[i].c_str(), tmp);
        }
        os.write((const char *)&other_data, sizeof(other_data));
        return os.good();
    }
 
    bool read(istream &is) {
        size_t v_size = 0, s_size = 0;
        is.read((char *)&v_size, sizeof(size_t));
        for (size_t i = 0; i < v_size; ++i) {
            is.read((char *)&s_size, sizeof(size_t));
            char *buf;
            buf = new char[s_size + 1];
            is.read(buf, s_size);
            buf[s_size] = '\0';
            v.push_back(buf);
            delete[] buf;
        }
        is.read((char *)&other_data, sizeof(other_data));
        return is.good();
    }
};
 
const char *filename = "test.bin";
 
int main() {
 
    Data data;
 
    data.v.push_back("Hello, world!");
    data.v.push_back("Qwerty");
    data.v.push_back("12345");
 
    ofstream ofs(filename, ios::binary);
    if (ofs) {
        if (data.write(ofs)) {
            cout << "write ok" << endl;
            ofs.close();
        }
        else {
            cout << "write fail" << endl;
            exit(2);
        }
    }
    else {
        cout << "create file error" << endl;
        exit(1);
    }
 
    Data rdata;
 
    ifstream ifs(filename, ios::binary);
    if (ifs) {
        if (rdata.read(ifs)) {
            cout << "read ok" << endl;
            ifs.close();
 
            for (size_t i = 0; i < rdata.v.size(); ++i)
                cout << rdata.v[i] << endl;
            cout << rdata.other_data << endl;
        }
        else {
            cout << "read fail" << endl;
            exit(4);
        }
    }
    else {
        cout << "create file error" << endl;
        exit(3);
    }
 
    system("pause");
    return 0;
}


Вернуться к обсуждению:
Чтение данных для объекта класса из файла C++
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.08.2019, 15:28
Готовые ответы и решения:

Запись объекта класса в файл и чтение из файла (Вызвано необработанное исключение: нарушение доступа для чтения)
Доброго времени суток. Вообщем-то есть некий класс Weapons: class Weapons { public: void...

Сохранение и чтение объекта класса в файл/из файла
Добрый день! Столкнулся с проблемой сохранения объекта класса в файл, и последующего его...

Запись и чтение объекта класса в файл и из файла
У меня есть std::list состоящий из объектов типа Person это база о людях. Нужно реализовать два...

Для разработанного класса объектов разработать asp-страницы для ввода данных объекта и передачу на сервер
Для разработанного класса объектов(класс был создан раннее). Нужно разработать asp-страницы для...

9
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.08.2019, 15:28

Чтение текстового файла. Парсинг его данных. Создание исключений для данных. Запись свойств объектов в файл
Проблема такая. Есть файл data.txt. В нем например какие-то данные. Landon Donovan, 150, A...

Чтение данных для контролов на форме из ini файла
Подскажите как можно реализовать чтение данных для контролов (в моём случае для кнопок) из ini...

Чтение данных из файла для дальнейших математических преобразований
Здравствуйте. Я только начинаю учить Java, более того еще не дошел до темы, которая будет здесь...

Чтение объекта из файла
Мне нужно записать в файл а потом прочитать из него много объектов одного класса я написал такой...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.