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

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

08.06.2019, 23:57. Показов 2595. Ответов 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
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru