С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Owen04
5 / 5 / 3
Регистрация: 25.12.2009
Сообщений: 144
#1

Размерность матрицы в файле - C++

18.11.2012, 19:07. Просмотров 1315. Ответов 8
Метки нет (Все метки)

Здраствуйте, вот у меня кусок кода в котором я открываю файл и записываю в матрицу q на w!

Хотел бы узнать, как сделать, что бы не задавать размеры, а считывало размер из файла!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void openobraz()
{
 int q=4,w=3;
 
 
 double **matrix;
 matrix = new double *[q];
 for (int i=0; i<q; i++)
 matrix[i]=new double[w];
 
 ifstream IN("obraz.cpp");
     for (int i=0; i<q; i++)
    {
      for (int j=0; j<w; j++)
       {
         IN>>matrix[i][j];
       }
        }
 IN.close();
 delete []matrix;
}
Думал сделать примерно так:
в строке подсчитать количество пробелов до конца строки и +1
а дальше не соображу как.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2012, 19:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Размерность матрицы в файле (C++):

Размер vs. размерность матрицы - C++
Вопрос скорее теоретический. Чем отличается размер матрицы от размерности? И как правильно спрашивать пользователя в программе: &quot;Введите...

Задать размерность матрицы с клавиатуры - C++
Задан двумерный массив U. Значения n и m должны вводиться. Внутренние значения массива выбираются случайно. Полученный массив должен...

Ввести размерность матрицы с клавиатуры - C++
Привет,мир! Как сделать так, чтобы самому задавать размерность матрицы. #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std;...

Как изменить размерность матрицы - C++
Помогите плз. Мне нужно просграммно поменять размерность матрицы. Например была матрица mat а должна получиться после определенных...

Считать размерность матрицы из файла - C++
Есть файл, в нем лежат две матрицы, не обязательно квадратные. Надо считать эти две матрицы, а потом их сложить.Файл типизирован, то есть...

Ввести размерность матрицы с клавиатуры - C++
Задача: создать массив N*M, (ввод размерности с клавиатуры) и вывести его на экран. Написала код, но где-то видимо туплю, помогите,...

8
Croessmah
Ушел
Эксперт CЭксперт С++
13558 / 7708 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
18.11.2012, 19:13 #2
сделайте в первой строке чтобы было два числа, через пробел (если в бинарник пишите, то по другому) - размеры массива. При открытии считывайте их и выделяйте массив заданного размера.
0
Owen04
5 / 5 / 3
Регистрация: 25.12.2009
Сообщений: 144
18.11.2012, 19:36  [ТС] #3
Хорошая идея, но у меня такое задание, что файлы будут менятся и каждый раз вводить в первой размеры не оч удобно!

Добавлено через 17 минут
Подскажите как подсчитать количество пробелов в строке)
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
18.11.2012, 19:47 #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
28
#include <iostream>
#include <fstream>
int main()
{
    std::ifstream f;
    int a[10][10],i=0,j=0;
     f.open("1.txt");
    while (f.good())
     {
             f>>a[i][j++];
             if (f.peek()=='\n')
              {
                 i++;
                 j=0;
                      }
          if (f.eof())
             i++;
     } 
     f.close();
     for (int ii=0; ii<i; ii++)
      {
          for (int jj=0; jj<j; jj++)
                std::cout<<a[ii][jj]<<'\t';
          std::cout<<'\n';      
      }  
     std::cout<<"i = "<<i<<" j = "<<j<<std::endl;
    return 0;
}
Содержимое файла:
Код
1 2 3 4 5
6 7 8 9 7
1 2 3 4 5
Тут даже суть не в пробелах. Метод peek() позволяет заглянуть в следующий символ.
1
Croessmah
Ушел
Эксперт CЭксперт С++
13558 / 7708 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
18.11.2012, 19:49 #5
Цитата Сообщение от Owen04 Посмотреть сообщение
Хорошая идея, но у меня такое задание, что файлы будут менятся и каждый раз вводить в первой размеры не оч удобно!
что не удобного? Написать функцию, которая будет записывать в фаил матрицу, попутно сохраняя там её размеры?
1
Owen04
5 / 5 / 3
Регистрация: 25.12.2009
Сообщений: 144
18.11.2012, 19:55  [ТС] #6
Вот пока ждал тож получилось)

C++
1
2
3
4
5
6
7
8
9
10
11
12
 int p=0;
 int n=0;
   while (!IN.eof())
   {
      char c;
      IN.get(c);
      if (c==' ') p++;
      if (c =='\n') n++;
   }
   int s=(p+1)/n;
 
 cout <<s<<" "<<n<<endl;
n- количество строк
s- количество столбцов
p-количество всех пробелов

Добавлено через 1 минуту
Цитата Сообщение от Croessmah Посмотреть сообщение
что не удобного? Написать функцию, которая будет записывать в фаил матрицу, попутно сохраняя там её размеры?
у меня задание
дан файл с выборкой (матрица 2-8 на 50 -150) и нужно его обрабатывать.
Но уже сделал)
1
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
18.11.2012, 19:55 #7
Цитата Сообщение от Owen04 Посмотреть сообщение
Здраствуйте, вот у меня кусок кода в котором я открываю файл и записываю в матрицу q на w!
Хотел бы узнать, как сделать, что бы не задавать размеры, а считывало размер из файла!
А в чём проблема? Сочини формат файла, в котором эти размеры будут.
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
18.11.2012, 19:55 #8
Owen04, а если числа будут отделены, например, двумя пробелами?
0
Owen04
5 / 5 / 3
Регистрация: 25.12.2009
Сообщений: 144
18.11.2012, 20:02  [ТС] #9
Цитата Сообщение от BumerangSP Посмотреть сообщение
Owen04, а если числа будут отделены, например, двумя пробелами?
а вот это я не предвидел
0
18.11.2012, 20:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2012, 20:02
Привет! Вот еще темы с ответами:

Задать размерность матрицы с клавиатуры - C++
Подскажите пожалуйста как сделать чтобы можно было задавать размер матрицы с клавиатуры. Код программы: #include &lt;iostream.h&gt; ...

Как из файла прочитать размерность матрицы и её содержимое? - C++
Помогите пожалуйста, ничего не нашёл! Как из файла прочитать размерность матрицы и её содержимое?

Необходимо убрать размерность матрицы из файла и сделать её в коде - C++
Вот этот кусок кода необходимо переделать чтобы размерность можно было устанавливать в программе как константой,а не указывать её в INPUT ...

С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица - C++
доброе время суток )помогите пожалуйста с задачкой,если кому не сложно ) 3. С клавиатуры вводится размерность целочисленной матрицы,...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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