Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
arzhanok
1 / 1 / 1
Регистрация: 10.07.2014
Сообщений: 38
#1

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

17.08.2014, 11:46. Просмотров 302. Ответов 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... что добавить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2014, 11:46     Чтение структуры из бинарного файла
Посмотрите здесь:

Чтение структуры из бинарного файла - C++
Не работает, вроде все верно. #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; int main() ...

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

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

Чтение структуры из бинарного файла в массив - C++
Структура выглядит так: struct StandardBook { char ISBN; //регистрационный номер книги International Standard Book Number char...

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

Неправильное чтение бинарного файла - C++
программа должна по идее вывести 99.. мне так казалось.. #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; using...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
Эксперт С++
15299 / 6931 / 1096
Регистрация: 02.05.2013
Сообщений: 11,341
Завершенные тесты: 1
17.08.2014, 11:53     Чтение структуры из бинарного файла #2
1) Fin - это указатель, для доступа к членам класса/cтруктуры через
указатель нужно использовать "->", а не точку.

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

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

4) Вместо велосипедостроения используйте Boost.serialization.
Пару часов поразбираться придется, зато сериализация пишется в три строчки.
Поддерживаются STL-контейнеры, сохранение/восстановление полиморфных
типов и многое другое.
arzhanok
1 / 1 / 1
Регистрация: 10.07.2014
Сообщений: 38
17.08.2014, 12:08  [ТС]     Чтение структуры из бинарного файла #3
Чтение структуры из бинарного файла
arzhanok
1 / 1 / 1
Регистрация: 10.07.2014
Сообщений: 38
17.08.2014, 12:09  [ТС]     Чтение структуры из бинарного файла #4
Убежденный, если есть возможность, прокомментируйте, это учебник. То что вы написали я еще на проходил, вообще ничего не понял. спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2014, 17:01     Чтение структуры из бинарного файла
Еще ссылки по теме:

Написание и чтение бинарного файла в С++ - C++
У меня возникла проблема, которую решить не могу. Вбиваю целое число N и N вещественных чисел. После вывожу эти числа сразу же на экран....

Чтение из бинарного файла значений - C++
Доброго времени суток. Есть бинарный файл. Можно из него как-нибудь считать значения по адресам? 0x77, 0x1E, 0xEB, 0x4E Просто не...

Запись/чтение бинарного файла - C++
Здавствуйте, помогите, пожалуйста, с чтением и записью объекта в бинарный файл. Пишут, что невозможно записать в бинарный файл, если в...

Чтение/запись бинарного файла - C++
Надо проверить корректно ли работает стек. #include &quot;stack.h&quot; #include &lt;fstream&gt; #include &lt;iostream&gt; using namespace std; ...

Чтение бинарного кода из файла - C++
Необходимо прочитать бинарный код, синтаксически разделённый на байты (Например: 01000010 00011100 01111011) из файла. С библиотекой...

Чтение из бинарного файла в структуру - C++
Собственно вопрос в заголовке, есть структура: struct StructEmployee {; int id; string fullname; string...


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

Или воспользуйтесь поиском по форуму:
Alexandr_1982
176 / 72 / 17
Регистрация: 04.11.2013
Сообщений: 382
Записей в блоге: 4
17.08.2014, 17:01     Чтение структуры из бинарного файла #5
У вас не создан объект. Указатель не инициализирован.
C++
1
ifstream *Fin;
Создание объекта производится оператором new , например
C++
1
ifstream *Fin= new ifstream;
Yandex
Объявления
17.08.2014, 17:01     Чтение структуры из бинарного файла
Ответ Создать тему
Опции темы

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