Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 17.12.2018
Сообщений: 16

Как правильно записать в бинарный файл структуру, в которой есть string?

08.06.2019, 23:57. Показов 2472. Ответов 21

Студворк — интернет-сервис помощи студентам
Предположим есть вот такая структура
C++
1
2
3
4
5
struct MyStruct
{
    int number;
    string str;
};
Её надо записать в бинарный файл, с таким условием что мы передаем всю структуру, а не отдельные её части для записи

Так работать не будет
C++
1
2
MyStruct ms;
file.read((char*)&ms,sizeof(MyStruct ));
Пробовала считывать размер того что вписал пользователь и это передать

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
cout<<"Vvedite kol-vo struct"<<endl;
    cin >> k;
    for(int i = 0; i<k; i++){
        cout<< i+1 <<" struct: " << endl;
        cout << "number\n";
        cin >> ms.number;
        cin.ignore();
        cout << endl << "str\n";
        getline(cin, ms.str, '\n');
        cin.clear();
        size = sizeof(ms.number) + ms.str.length() + 1;
        file.read((char*)&ms,sizeof(size));
        size = 0;
}
Лучше не стало, если запустить отдельно считывание из файла, выводит что-то не понятное
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.06.2019, 23:57
Ответы с готовыми решениями:

Как правильно сохранить и потом считать структуру в бинарный файл
Есть структура struct card { int size; char *lear; int *name; }; Эта структура это карты игрока. Заполняем ее данными, у...

Как класс string записать в бинарный файл через вектор?
вопрос такой у меня есть класс. я создаю вектор по этому классу vector&lt;Employee&gt; work; вектор отлично заполняется и вся программа...

Как правильно записать символьный массив в бинарный файл?
Хочу записать в бинарный файл две строки. 1 - &quot;даня&quot;, 2 - &quot;маша&quot;. открываю так: ofstream...

21
0 / 0 / 0
Регистрация: 17.12.2018
Сообщений: 16
09.06.2019, 14:04  [ТС]
Студворк — интернет-сервис помощи студентам
gng, Но изучение сериализации не было...(
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
09.06.2019, 18:20
Цитата Сообщение от varyahoch Посмотреть сообщение
Ну видимо именно как кусок памяти
например если б не было этого string, то та строчка работала б как часы, но это мы уже проходили
Я так понимаю, что, раз вы проходили запись структур в файл, ты решила, что и с std::string проканает.
Нет, записывать и читать так можно только структуры определённого вида - которые не содержат указателей на другие объекты/массивы.
Для остальных (а таких, как правило, большинство) надо делать специальные методы (ну или операторы), которые будут сохранять/читать содержимое этих указателей.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.06.2019, 18:20

Записать структуру в бинарный файл
ЛЮДИ подскажите кто знает,чувствую,что ответ где то рядом,а где найти не могу:( Пусть есть структура,которую надо занести в бинарный файл...

Записать структуру в бинарный файл
Всем доброго времени суток. у меня такая проблема, мне нужно перекинуть в бинарный файл структуру. Структуру создала, все сделала. Файл...

Не получается прочесть правильно текстовый файл в структуру а затем в бинарный файл
Нужно просто прочесть файл в структуру данных а потом оттуда записать в бинарный файл Вот как выглядит текстовый файл: 11122 Mary...

Как записать структуру в бинарный файл одним "блоком"
Как записать структуру в бинарный файл одним &quot;блоком&quot;, если в структуре есть private данные? struct MyStruct{ char Name; ...

Правильно записать бинарный файл
У меня имеется структура с массивом типа unsigned char и строкой string. Я пытаюсь записать число и небольшую &quot;подпись&quot; в...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru