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

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

Войти
Регистрация
Восстановить пароль
 
iryde
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 15
#1

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

02.01.2013, 18:53. Просмотров 613. Ответов 8
Метки нет (Все метки)

В файле находиться следующяя информация:

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). Мне нужно считать данные в виде матрици.
Буду благодарна за любую помощь!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
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
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
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
383 / 290 / 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
383 / 290 / 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++ Считывание данных из файла
C++ Считывание данных из текстового файла c++
C++ Считывание из файла массива данных

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт CЭксперт С++
13057 / 7320 / 817
Регистрация: 27.09.2012
Сообщений: 18,066
Записей в блоге: 3
Завершенные тесты: 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++
Ответ Создать тему
Опции темы

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