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

Запись массива в dat файл - C++

Восстановить пароль Регистрация
 
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 417
17.11.2010, 23:07     Запись массива в dat файл #1
Хочу записать большой массив в dat файл но получаю ошибку
error C2070: int [53][53][53][53][53][6]: недопустимый оператор sizeof
если делаю массив чуть поменьше то все проходит без ошибок


C++
1
2
3
4
int card_5[53][53][53][53][53][6]={0};
FILE * fout = fopen("card_5_ryka.dat", "wb");
fwrite(card_5,  sizeof(card_5), 1, fout);  
fclose(fout);
Как можно записать такой массив в файл ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2010, 23:07     Запись массива в dat файл
Посмотрите здесь:

Запись числового массива в файл?? C++
C++ Запись массива в файл.
Запись из массива а файл C++
C++ Запись массива в файл
запись массива в файл C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
17.11.2010, 23:48     Запись массива в dat файл #2
А можно вопрос, зачем вам такая размерность? вы сами не путаетесь?
kle0fas
6 / 6 / 1
Регистрация: 25.02.2010
Сообщений: 12
18.11.2010, 00:40     Запись массива в dat файл #3
Итоговый файл будет весить ~4,6 Гб
попробуй через 6 циклов сделать :
C++
1
2
3
4
5
6
7
for(i1=0;i1<53;i1++)
  for(i2=0;i2<53;i2++)
    for(i3=0;i3<53;i3++)
      for(i4=0;i4<53;i4++)
        for(i5=0;i5<53;i5++)
          for(i6=0;i6<53;i6++)
            fprintf(fout,"%d ",card_5[i1][i2][i3][i4][i5][i6]);
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
18.11.2010, 00:43     Запись массива в dat файл #4
kle0fas, тогда уж так)))
C++
1
2
3
4
5
6
7
for(i1=0;i1<53;i1++)
  for(i2=0;i2<53;i2++)
    for(i3=0;i3<53;i3++)
      for(i4=0;i4<53;i4++)
        for(i5=0;i5<53;i5++)
          for(i6=0;i6<6;i6++)
            fprintf(fout,"%d ",card_5[i1][i2][i3][i4][i5][i6]);
fasked
18.11.2010, 00:47
  #5

Не по теме:

Шестое измерение - власть над информацией.

kle0fas
6 / 6 / 1
Регистрация: 25.02.2010
Сообщений: 12
18.11.2010, 00:48     Запись массива в dat файл #6
Ну да, ты прав)))
C++
1
2
3
4
5
6
7
8
9
10
11
int card_5[53][53][53][53][53][6]={0};
int i1,i2,i3,i4,i5,i6;
FILE * fout = fopen("card_5_ryka.dat", "wb");
for(i1=0;i1<53;i1++)
  for(i2=0;i2<53;i2++)
    for(i3=0;i3<53;i3++)
      for(i4=0;i4<53;i4++)
        for(i5=0;i5<53;i5++)
          for(i6=0;i6<6;i6++)
            fprintf(fout,"%d ",card_5[i1][i2][i3][i4][i5][i6]);
fclose(fout);
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 417
18.11.2010, 08:44  [ТС]     Запись массива в dat файл #7
kle0fas,
silent_1991,

Спасибо за ответы
А какой код для открытия и закрытия файла ?
с fprintf никогда не работал
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2010, 19:41     Запись массива в dat файл
Еще ссылки по теме:

Запись массива в файл C++
C++ запись и чтение файла dat
C++ Запись массива в файл

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
18.11.2010, 19:41     Запись массива в dat файл #8
Создаём указатель на поток: FILE *fin;
Открываем: if ((fin = fopen("file", "r")) == NULL) exit(-1); В данном случае file - имя файла, r - режим открытия (r - для чтения, w - для записи, есть ещё несколько режимов, если интересно - погуглите)
Закрываем: fclose(fin);
Yandex
Объявления
18.11.2010, 19:41     Запись массива в dat файл
Ответ Создать тему
Опции темы

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