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

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

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

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

17.08.2014, 11:46. Просмотров 306. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение структуры из бинарного файла (C++):

Чтение структуры из бинарного файла - 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++
Формат файла состоит из 3 структур и одной переменной. Подробное описание формата во вложении, просьба посмотреть его. У меня возникла...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Убежденный
Системный программист
Эксперт С++
15558 / 7066 / 1115
Регистрация: 02.05.2013
Сообщений: 11,475
Завершенные тесты: 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 / 1
Регистрация: 10.07.2014
Сообщений: 38
17.08.2014, 12:08  [ТС] #3
Чтение структуры из бинарного файла
0
arzhanok
1 / 1 / 1
Регистрация: 10.07.2014
Сообщений: 38
17.08.2014, 12:09  [ТС] #4
Убежденный, если есть возможность, прокомментируйте, это учебник. То что вы написали я еще на проходил, вообще ничего не понял. спасибо
0
Alexandr_1982
177 / 74 / 17
Регистрация: 04.11.2013
Сообщений: 385
Записей в блоге: 4
17.08.2014, 17:01 #5
У вас не создан объект. Указатель не инициализирован.
C++
1
ifstream *Fin;
Создание объекта производится оператором new , например
C++
1
ifstream *Fin= new ifstream;
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2014, 17:01
Привет! Вот еще темы с ответами:

Чтение бинарного файла - C++
Добрый Добавлено через 6 минут Добрый день. Не получается прочитать бин. файл. Суть какая: есть файл, в котором записаны дубл...

Чтение бинарного файла - C++
Здравствуйте. Есть код чтения бинарного файла: FILE *f; string tmp; char buff = {0}; f = fopen(&quot;data.bin&quot;, &quot;rb&quot;); if(f ==...

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

Чтение из бинарного файла - C++
Создала Базу данных. запись в файл происходит, а чтение из файла не получается. исправьте, пожалуйста, или подскажите как? #include...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.08.2014, 17:01
Ответ Создать тему
Опции темы

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