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

Записать по одному элементу числовую матрицу в бинарный файл - C++

Восстановить пароль Регистрация
 
Gorpash
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 50
20.05.2014, 20:38     Записать по одному элементу числовую матрицу в бинарный файл #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
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
FILE *p;
p=fopen("D:\\si\\file 3.3.bin","wb+");
int ch,ch1, masv[50][50];
if (p!=NULL)
{ printf("  Vvedit rozmir matrcu:\n");
  printf(" rozmir ch=");
  cin>>ch;
  printf(" rozmir ch1=");
  cin>>ch1;
  
   fwrite(&ch,sizeof(int),1,p);
   fwrite(&ch1,sizeof(int),1,p);
   
   for (int i=0; i<ch; i++)
   {
    for (int j=0; i<ch1; j++)
   {
       masv[i][j]=rand ()%15;
       printf("%4d", masv[i][j]);
       fwrite(&masv[i][j],sizeof(int),1,p);
   } 
   cout<<endl; 
   }
  }
   fclose(p);
   return 0;
  }
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2014, 20:38     Записать по одному элементу числовую матрицу в бинарный файл
Посмотрите здесь:

C++ Записать матрицу в бинарный файл и посчитать среднее арифметическое её членов
Данные записать в файл F1.txt, затем прочитать оттуда, обрабатывались и записывались в бинарный файл F2.bin с проверкой C++
Создать бинарный файл f и записать в него целые числа C++
Данные из текстового файла записать в бинарный файл C++
C++ Записать массив структур в бинарный файл
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.05.2014, 20:47     Записать по одному элементу числовую матрицу в бинарный файл #2
Цитата Сообщение от Gorpash Посмотреть сообщение
найти ошибку в коде
Что не так?
Gorpash
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 50
20.05.2014, 21:12  [ТС]     Записать по одному элементу числовую матрицу в бинарный файл #3
На экран выбрасывает много значений (не формирует массив) выбрасывает из программы. Я уже незнаю что делать ..
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.05.2014, 21:31     Записать по одному элементу числовую матрицу в бинарный файл #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
for (int i=0; i<ch; i++)
   {
       for (int j=0; j<ch1; j++) // !!! нужно j < ch1, а у вас i < ch1
       {
           masv[i][j]=rand ()%15;
           printf("%4d", masv[i][j]);
           fwrite(&masv[i][j],sizeof(int),1,p);
       } 
       cout<<endl; 
   }
Евгений Буланов
6 / 6 / 4
Регистрация: 23.10.2013
Сообщений: 63
21.05.2014, 00:36     Записать по одному элементу числовую матрицу в бинарный файл #5
нужно i < 50
и j < 50
у вас же определён размер матрицы, что вы там еще вводите?

Добавлено через 9 минут
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
FILE *p;
p=fopen("D:\\si\\file 3.3.bin","wb+");
int ch,ch1;
 
if (p!=NULL)
{ printf("  Vvedit rozmir matrcu:\n");
  printf(" rozmir ch=");
  cin>>ch;
  printf(" rozmir ch1=");
  cin>>ch1;
 
  int ** masv = new int* [ch];   //вот матрица по заданным пользователем параметрам, не забудьте освободить память после использования
  for(int i(0); i < ch; ++i)
      masv[i] = new int[ch1];
  
   fwrite(&ch,sizeof(int),1,p);
   fwrite(&ch1,sizeof(int),1,p);
   
   for (int i=0; i<ch; i++)
   {
    for (int j=0; i<ch1; j++)
   {
       masv[i][j]=rand ()%15;
       printf("%4d", masv[i][j]);
       fwrite(&masv[i][j],sizeof(int),1,p);
   } 
   cout<<endl; 
   }
  }
   fclose(p);
   return 0;
  }
Yandex
Объявления
21.05.2014, 00:36     Записать по одному элементу числовую матрицу в бинарный файл
Ответ Создать тему
Опции темы

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