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

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

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

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

18.11.2012, 19:07. Просмотров 1207. Ответов 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
а дальше не соображу как.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2012, 19:07     Размерность матрицы в файле
Посмотрите здесь:

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

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

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

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

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

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

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

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

Добавлено через 17 минут
Подскажите как подсчитать количество пробелов в строке)
BumerangSP
4286 / 1408 / 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() позволяет заглянуть в следующий символ.
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,051
Записей в блоге: 3
Завершенные тесты: 1
18.11.2012, 19:49     Размерность матрицы в файле #5
Цитата Сообщение от Owen04 Посмотреть сообщение
Хорошая идея, но у меня такое задание, что файлы будут менятся и каждый раз вводить в первой размеры не оч удобно!
что не удобного? Написать функцию, которая будет записывать в фаил матрицу, попутно сохраняя там её размеры?
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) и нужно его обрабатывать.
Но уже сделал)
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
18.11.2012, 19:55     Размерность матрицы в файле #7
Цитата Сообщение от Owen04 Посмотреть сообщение
Здраствуйте, вот у меня кусок кода в котором я открываю файл и записываю в матрицу q на w!
Хотел бы узнать, как сделать, что бы не задавать размеры, а считывало размер из файла!
А в чём проблема? Сочини формат файла, в котором эти размеры будут.
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
18.11.2012, 19:55     Размерность матрицы в файле #8
Owen04, а если числа будут отделены, например, двумя пробелами?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2012, 20:02     Размерность матрицы в файле
Еще ссылки по теме:

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

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

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

Файл: Для заданной в файле матрицы A (n на m) определить количество строк, которые упорядочены по возрастанию - C++
помогите написать программу Для заданной в файле матрицы A (n на m) определить количество строк, которые упорядочены по возрастанию

Размерность структуры - C++
Создал структуру..после чего объявляю её размерность proc process до этого объявил int N = 5; ругается на этот N в объявлении...


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

Или воспользуйтесь поиском по форуму:
Owen04
5 / 5 / 3
Регистрация: 25.12.2009
Сообщений: 144
18.11.2012, 20:02  [ТС]     Размерность матрицы в файле #9
Цитата Сообщение от BumerangSP Посмотреть сообщение
Owen04, а если числа будут отделены, например, двумя пробелами?
а вот это я не предвидел
Yandex
Объявления
18.11.2012, 20:02     Размерность матрицы в файле
Ответ Создать тему
Опции темы

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