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

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

Восстановить пароль Регистрация
 
kkk008009kkk
46 / 46 / 1
Регистрация: 24.03.2011
Сообщений: 315
15.04.2012, 22:31     Чтение структуры из файла #1
Добрый день.

Пытаюсь считать структуру из файла в структуру(идентичную структуре файла) получается такой код:

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 <stdio.h>
#include <iostream>
 
struct tbook {
  double y;
  double x[4];
  double c[5];
  double z1[4];
  double z2[4];
  double z3[4];
  };
 
  int main()
{
      
      tbook book;
      int i, n; 
  FILE *f;
 
      f = fopen ( "books.dat", "rb" );
n = fread ( book, sizeof(tbook), 1, f );//здесь получается ошибка
 
fclose ( f );
getch();
 
 
}
Явно, что-то не то делаю. Объясните, как сделать, пожалуйста.

Добавлено через 20 минут
Пришел к такому варианту:

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 <stdio.h>
#include <conio.h>
 
struct tbook {
  double y;
  double x[4];
  double c[5];
  double z1[4];
  double z2[4];
  double z3[4];
  };
 
int main()
 
{
  tbook B[1];
  int i, n; 
  FILE *f;
  f = fopen ( "books.dat", "rb" );
  n = fread ( B, sizeof(tbook), 100, f );
  fclose(f);
  
  fclose ( f );
  printf ( "%f",B[1].c[1]);
  getch();
  return 0;
}
Однако не работает.((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2012, 22:31     Чтение структуры из файла
Посмотрите здесь:

C++ Корявое чтение структуры из файла
C++ Чтение структуры из файла
чтение структуры из файла C++
Чтение 10-ой структуры из бинарного файла C++
Чтение структуры из файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
15.04.2012, 22:36     Чтение структуры из файла #2
Цитата Сообщение от kkk008009kkk Посмотреть сообщение
Пришел к такому варианту
Да можно было просто
C++
1
n = fread ( &book, sizeof(tbook), 1, f );
Цитата Сообщение от kkk008009kkk Посмотреть сообщение
Однако не работает.((
Файл 2 раза с какой целью закрываете?

Цитата Сообщение от kkk008009kkk Посмотреть сообщение
printf ( "%f",B[1].c[1]);
Индексы с нуля начинаются
C++
1
printf ( "%f",B[0].c[1]);
при таком подходе.

А вообще странный какой-то С++, очень С напоминает...
kkk008009kkk
46 / 46 / 1
Регистрация: 24.03.2011
Сообщений: 315
15.04.2012, 22:45  [ТС]     Чтение структуры из файла #3
easybudda, Сейчас пришел к такому варианту:

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 <stdio.h>
#include <conio.h>
 
struct tbook {
  double y;
  double x[4];
  double c[5];
  double z1[4];
  double z2[4];
  double z3[4];
  }book;
 
int main()
 
{
  
  int i, n; 
  FILE *f;
  f = fopen ( "books.dat", "rb" );
  (fread(&book,sizeof(struct tbook), 1, f);//здесь ошибка
  fclose(f);
  
 
  //printf ( "%f",B[1].y);
  getch();
  return 0;
}
Но опять ошибка.

П.С.Работаю на Dev-C++
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
15.04.2012, 22:46     Чтение структуры из файла #4
Цитата Сообщение от kkk008009kkk Посмотреть сообщение
Но опять ошибка.
Какая - угадать нужно?
kkk008009kkk
46 / 46 / 1
Регистрация: 24.03.2011
Сообщений: 315
15.04.2012, 22:49  [ТС]     Чтение структуры из файла #5
easybudda, В комментариях написал в коде, где ошибка выскакивает.

А пишет:

C++
1
 expected `)' before ';' token
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
15.04.2012, 22:52     Чтение структуры из файла #6
Цитата Сообщение от kkk008009kkk Посмотреть сообщение
easybudda, В комментариях написал в коде, где ошибка выскакивает.

А пишет:

C++
1
 expected `)' before ';' token
скобка перед fread лишняя Т_т
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2012, 22:54     Чтение структуры из файла
Еще ссылки по теме:

Запись и чтение структуры в/из файла C++
C++ Чтение структуры из бинарного файла
C++ Чтение из файла полей структуры

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

Или воспользуйтесь поиском по форуму:
kkk008009kkk
46 / 46 / 1
Регистрация: 24.03.2011
Сообщений: 315
15.04.2012, 22:54  [ТС]     Чтение структуры из файла #7
Разобрался. Хотел бы еще узнать:

Порядок списка

C++
1
2
3
4
5
6
 double y;
  double x[4];
  double c[5];
  double z1[4];
  double z2[4];
  double z3[4];
влияет на результат?

Почему-то при разной сортировке выдает разный результат
Yandex
Объявления
15.04.2012, 22:54     Чтение структуры из файла
Ответ Создать тему
Опции темы

Текущее время: 19:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru