Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 13.04.2019
Сообщений: 64

Записать вектор классов в двоичный файл и считать их обратно из файла

14.11.2019, 09:12. Показов 854. Ответов 4
Метки с++ (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Необходимо записать вектор классов в двоичный файл и потом считать данные из этого файла. Не понимаю как это делается

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<vector>
#include<iterator>
#include <algorithm>
using namespace std;
 
class MyClass
{
public:
    string str;
    MyClass(string str) {
        this->str = str;
    }
    MyClass(){}
};
 
 
 
int main()
{
    setlocale(LC_ALL, "RUS");
    char name[40];  //массив с именем файла
    cout << "введите имя файла ";
    cin.getline(name, 40);      //считывание имя файла из консоли
 
    MyClass *m = new MyClass("stroka");
    MyClass *m1 = new MyClass("stroka1");
 
    vector<MyClass*> wr;
 
    ofstream fon(name, ios::binary | ios::out); //открытие потока для создания файла
    if (!fon)       //проверка
    {
        cout << "Ошибка" << endl;
    }
    fon.write((char*)& wr, sizeof(wr));
    cout << "записал" << endl;
    fon.close();
 
    
    MyClass* m2 = new MyClass();
    ifstream fin(name, ios::binary | ios::in);
 
    Тут необходимо считать вектор из файла
    
    
    fin.close();
 
 
    return 0;
   
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.11.2019, 09:12
Ответы с готовыми решениями:

Считать вектор из файла, записать вектор в файл
Доброго времени суток. Программа должна считывать числа из заданного файла, потом записывать в другой файл вектор, в котором каждый элемент...

Записать в файл list (очередь) объектов, в которых содержатся строки string, и считать с файла обратно в list
Извините подскажите пожалуйста, как записать list(очередь) объектов в которых содержаться string, и считать с файла обратно в list;...

Записать в двоичный файл массив значений функции, считать из этого файла кааждое 5-е значение
Правильно ли составлена прога, если есть какие-то ошибки отпишите их мне пожалуйста! и еще нужно написать прогу, которая записывает в...

4
Заблокирован
14.11.2019, 09:22
Цитата Сообщение от vladiks1805 Посмотреть сообщение
string str;
для записи/чтения так не пойдет, нужно либо char str[фиксированное], или запись: str.length()+str.c_str()
1
1 / 1 / 0
Регистрация: 13.04.2019
Сообщений: 64
15.11.2019, 16:05  [ТС]
Не работает, выбрасывает исключение
Вызвано исключение по адресу 0x000D9352 в ConsoleApplication1.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xDDDDDDDD.
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
#include <iostream>
#include<string>
#include <fstream>
#include<vector>
#include<iterator>
using namespace std;
 
class MyClass
{
public:
    char str[10] = "qwert";
 
};
 
 
 
int main()
{
    setlocale(LC_ALL, "RUS");
    char name[40];  //массив с именем файла
    cout << "введите имя файла ";
    cin.getline(name, 40);      //считывание имя файла из консоли
 
    MyClass *m = new MyClass();
    
 
    vector<MyClass*> wr;
    wr.push_back(m);
 
    ofstream fon(name, ios::binary | ios::out); //открытие потока для создания файла
    if (!fon)       //проверка
    {
        cout << "Ошибка" << endl;
    }
    fon.write((char*)& wr, sizeof(wr));
    cout << "записал" << endl;
    fon.close();
 
    
    MyClass* m2 = new MyClass();
    ifstream fin(name, ios::binary | ios::in);
    vector<MyClass*> wrr;
    fin.read((char*)& wrr, sizeof(wrr));
    m2 = wrr.at(0);
    cout << m2->str;
    fin.close();
 
    return 0;
   
}
0
Заблокирован
15.11.2019, 19:05
C++
1
fon.write((char*)wr, sizeof(*wr));//вроде так
0
1 / 1 / 0
Регистрация: 13.04.2019
Сообщений: 64
16.11.2019, 09:27  [ТС]
Спасибо за ответ! Выдает исключение
Вызвано исключение по адресу 0x00355DE2 в laba8.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x74736578.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.11.2019, 09:27
Помогаю со студенческими работами здесь

Считать файл в два списка и записать обратно в файл
Товарищи нужна помощь, я не понимаю почему прогр не работает, что мне нужно переделать, поменять. Программа считывает имена в два double...

Записать в двоичный файл строку, потом считать ее и вывести на экран
Здравствуйте! Помогите советом или реализацией)

Как считать в переменную данные из файла между определённы тегов и записать и обратно?
Вот не могу нарыть информации по такому поводу. Имеется файл .cfg такого содержания (лишнее я вырезал): ...

Как записать объект с полем типа std::string в бинарном виде в файл и считать его обратно?
Знаю как записывать объекты в файл в бинарном виде, но как быть, когда у них динамические поля? Какой метод использовать? Можете привести...

Считать данные из файла и записать в вектор (запись происходит неправильно)
есть функция которая читывает с файла и записывает в вектор, но при записывание в в ектор чысла записываються как мусор void...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru