Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
arzhanok
1 / 1 / 3
Регистрация: 10.07.2014
Сообщений: 38
1

Чтение структуры из бинарного файла

17.08.2014, 11:46. Просмотров 361. Ответов 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
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
int main(void)
{ 
     setlocale (0,"");
     
     struct TBook
      {
         string author;
         string title;
         int count;  
      };
     TBook B;
     B.author = "Pushkin";
     B.title = "Polatva";
     B.count = 1;
     
     //cout << "структура B : "<<"author = "<<B.author<<" title = "<<B.title<<" count = "<<B.count<<endl;
     
      ifstream *Fin;
      Fin.open ( "books.dat", ios::binary );
      Fin.read ( (char*) &B, sizeof(B) );
      cout << B.author << " " << B.title << ". " << B.count << "шт.";
      Fin.close();
в файле books.dat уже сохранена описанная структура, пытаюсь ее считать и напечатать. Не получается. компилятор пишет , что не объявлены open, read, close... что добавить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2014, 11:46
Ответы с готовыми решениями:

Чтение структуры из бинарного файла
Не работает, вроде все верно. #include &quot;stdafx.h&quot; #include &lt;conio.h&gt;...

Чтение 10-ой структуры из бинарного файла
Здравствуйте как это реализовать, не перебирая все структуры.

Чтение структуры из бинарного файла в массив
Структура выглядит так: struct StandardBook { char...

Запись и чтение структуры из бинарного файла
Проблема заключается в том, что, когда идёт запись и считка с бин. файла -...

Чтение нескольких структур и одной переменной из бинарного файла. Формат файла имеется
Формат файла состоит из 3 структур и одной переменной. Подробное описание...

4
Убежденный
Ушел с форума
Эксперт С++
15999 / 7270 / 1180
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
17.08.2014, 11:53 2
1) Fin - это указатель, для доступа к членам класса/cтруктуры через
указатель нужно использовать "->", а не точку.

2) Fin не инициализирован. Получите access violation в лучшем случае.

3) string не получится просто взять и сохранить побайтно в файл, а затем
также просто прочесть оттуда. Это составной класс, который может иметь
указатели на внутренние объекты, те, в свою очередь, тоже.
Другими словами, string - это целый граф объектов, в TBook от
этого графа лежит только одна "вершина".

4) Вместо велосипедостроения используйте Boost.serialization.
Пару часов поразбираться придется, зато сериализация пишется в три строчки.
Поддерживаются STL-контейнеры, сохранение/восстановление полиморфных
типов и многое другое.
1
arzhanok
1 / 1 / 3
Регистрация: 10.07.2014
Сообщений: 38
17.08.2014, 12:08  [ТС] 3
Чтение структуры из бинарного файла
0
arzhanok
1 / 1 / 3
Регистрация: 10.07.2014
Сообщений: 38
17.08.2014, 12:09  [ТС] 4
Убежденный, если есть возможность, прокомментируйте, это учебник. То что вы написали я еще на проходил, вообще ничего не понял. спасибо
0
Alexandr_1982
180 / 81 / 30
Регистрация: 04.11.2013
Сообщений: 413
Записей в блоге: 4
17.08.2014, 17:01 5
У вас не создан объект. Указатель не инициализирован.
C++
1
ifstream *Fin;
Создание объекта производится оператором new , например
C++
1
ifstream *Fin= new ifstream;
1
17.08.2014, 17:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2014, 17:01

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

Чтение из бинарного файла
Ну собственно,у меня есть некий двоичный файл,в него записана моя информация в...

Чтение бинарного файла
Привет! Необходима помощь в таком вопросе - Создал программу для хранения...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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