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

считывание данных из файла в C++ - C++

Восстановить пароль Регистрация
 
iryde
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 15
02.01.2013, 18:53     считывание данных из файла в C++ #1
В файле находиться следующяя информация:

Name AIXTRON HANKORE_ENVM_TECH BOIRON
01.01.2009 4.78 0.039 17.34
02.01.2009 4.71 0.039 17
05.01.2009 4.77 0.043 17
06.01.2009 4.65 0.043 17.09 ...

Первая строка – названия, первый столбец даты, все остальное данные (double). Мне нужно считать данные в виде матрици.
Буду благодарна за любую помощь!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2013, 18:53     считывание данных из файла в C++
Посмотрите здесь:

считывание данных из файла C++
Считывание данных из файла C++
считывание данных из файла C++
Считывание данных из файла C++
Считывание структуры данных с файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
02.01.2013, 18:55     считывание данных из файла в C++ #2
Создаёте структуру с соответствующими полями. Создаёте массив структур и считываете в него файл.
iryde
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 15
02.01.2013, 19:21  [ТС]     считывание данных из файла в C++ #3
Цитата Сообщение от David Sylva Посмотреть сообщение
Создаёте структуру с соответствующими полями. Создаёте массив структур и считываете в него файл.

Немного сложновато создать такую структуру - количество солбцов и строк неизвестно. В файл могут быть добавлены/ удалены акции или временные пункты.

Мой код должен быть вроде этого

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream.h>
#include <fstream.h>
 
int main()
{
        char path[] =   "e:\\1.txt";
  ifstream in(path); // input
 
  if(!in) {
    cout << "Cannot open file.\n";
    return 1;
  }
 
  double d;
  int cnt = 0;
  // получение количества дробных чисел в файле
  while(!in.eof())
  {
        in >> d;
        cnt++;
  }
 
  char buf[256];
  int rows_cnt = 0;
 
  in.close();
  in.clear();
  in.open(path);
 
  // получение количества строк
  while(!in.eof())
  {
        in.getline(buf, 255);
        rows_cnt++;
  }
  in.close();
  in.clear();
 
  // получение количества столбцов
  int cols_cnt =    cnt/rows_cnt;
 
  // создание матрицы
  double **matrix = new double*[rows_cnt];
  for(int i=0; i<rows_cnt; i++)
        matrix[i] = new double[cols_cnt];
 
  in.open(path);
  // чтение матрицы
  for(int i=0; i<rows_cnt; i++)
  {
        for(int j=0; j<cols_cnt; j++)
        {
                 in>>matrix[i][j];
                 cout<<matrix[i][j]<<" ";
        }
        cout<<endl;
  }
 
  // заглушка, чтобы консоль не закрылась
  cin>> d;
  return 0;
}
Я не знаю как его видоизменить для того чтобы отдельно считать строку с названиями акций
и столбец с временными пунктами.
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
02.01.2013, 19:23     считывание данных из файла в C++ #4
Ссылка не работает.

Добавлено через 1 минуту
Цитата Сообщение от iryde Посмотреть сообщение
Мне нужно считать данные в виде матрици.
Это как?
iryde
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 15
02.01.2013, 19:26  [ТС]     считывание данных из файла в C++ #5
Матрица значений
4.78 0.039 17.34
4.71 0.039 17
4.77 0.043 17
4.65 0.043 17.09 ...
KeyGen
 Аватар для KeyGen
333 / 289 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
02.01.2013, 19:28     считывание данных из файла в C++ #6
Цитата Сообщение от iryde Посмотреть сообщение
Я не знаю как его видоизменить для того чтобы отдельно считать строку с названиями акций
и столбец с временными пунктами.
Они разделены пробелами и новыми строками. Исходя из этого измени цикл чтения информации.
iryde
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 15
02.01.2013, 19:40  [ТС]     считывание данных из файла в C++ #7
Цитата Сообщение от KeyGen Посмотреть сообщение
Они разделены пробелами и новыми строками. Исходя из этого измени цикл чтения информации.
Каким образом его изменить?

Как из исходящего текстового файла
Name AIXTRON HANKORE_ENVM_TECH BOIRON
01.01.2009 4.78 0.039 17.34
02.01.2009 4.71 0.039 17
05.01.2009 4.77 0.043 17
06.01.2009 4.65 0.043 17.09 ...
считать матрицу данных
4.78 0.039 17.34
4.71 0.039 17
4.77 0.043 17
4.65 0.043 17.09 ...?

Первая строка и первый столбец имеют другой формат..
KeyGen
 Аватар для KeyGen
333 / 289 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
02.01.2013, 19:54     считывание данных из файла в C++ #8
Тут нужна структура. Из структур уже и лепить матрицу. Или же тебе названия и даты не нужны. А просто цифры с точкой в массив всунуть 3хN. Массив имеет один формат...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.01.2013, 20:00     считывание данных из файла в C++
Еще ссылки по теме:

Считывание данных с файла C++
C++ Считывание данных из файла
C++ Считывание данных из файла

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 2
Завершенные тесты: 1
02.01.2013, 20:00     считывание данных из файла в C++ #9
Можно, например, первую строку разбивать и пихать в
C++
1
vector<string>
А всё остальное в структуру типа
C++
1
2
Date date;
vector<double> xxx;
Yandex
Объявления
02.01.2013, 20:00     считывание данных из файла в C++
Ответ Создать тему
Опции темы

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