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

Чтение CSV-файла в двумерный массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не понимаю, какие в моем коде ошибки http://www.cyberforum.ru/cpp-beginners/thread1506969.html
#include <iostream> char board = {'-','-','-','-','-','-','-','-','-',}; int get_move(){ std::cout <<"Move options:" << std::endl; std::cout <<"-7-|-8-|-9-" << std::endl; std::cout...
C++ Vector iterator not incrementable Здравствуйте. Подскажите, из-за чего не работает код? При запуске программы появляется ошибка: "... expression: vector iterator not incrementable ..." #include <iostream> #include <vector>... http://www.cyberforum.ru/cpp-beginners/thread1506959.html
C++ Заполнить массив неодинаковыми случайными числами
нужно дополнить ф-кцию рандома так что бы заполнить массив не одинаковыми числами. Как прописать возвращение на внутренний цыкл, чтобы сново проверить выданный рандом?? #include <iostream> #include...
C++ Задача по теме "Функции с переменным числом параметров"
Задание: Ввести функцию с переменным числом параметров как функцию класса. Цель функции — инициализация элементов класса (расширение метода ввода). В качестве параметров передавать значения...
C++ Описание классов. Классы "Шар" и "Ящик для шаров" http://www.cyberforum.ru/cpp-beginners/thread1506924.html
1.Опишите класс "шар", описывающий габариты и вес. Данные класса: радиус шара,вес. Методы класса: должны обеспечить минимальную функциональность объекта. 2.Опишите класс "ящик" в котором могут...
C++ Описание классов. Класс "Угол" Опишите класс "Угол" для измерения углов. Данные класса : число градусов и минут Методы класса : должны обеспечить минимальную функциональность объекта. 2.Перегрузите операцию сложения углов с... подробнее

Показать сообщение отдельно
CyberTrader
0 / 0 / 0
Регистрация: 30.07.2015
Сообщений: 11
30.07.2015, 22:47  [ТС]
Цитата Сообщение от ForEveR Посмотреть сообщение
CyberTrader, Т.е. regex вы использовали, а вот vector не?
Ну, как-то так, да.

Вот так-то побыстрее будет:
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
int main() {
  const char *sFileName = "R:\\data.csv";
  vector<vector<double> > aData;
  vector<double> v;
  ifstream hFile (sFileName);
  if (!hFile) cout << "Не удалось открыть файл";
  else {
    char sLine[100], s;
    double d;
    hFile >> sLine;  // Пропускаем первую строку
    while (!hFile.eof()) {
      if ( !hFile.get(sLine, 15, ',') ) break;
      for ( size_t i=0; i<=7; i++ ) {
        hFile >> s >> d;
        v.push_back(d);
      }
      hFile.get();  // пропуск \n
      aData.push_back(v);
      v.clear();
    }
    hFile.close();
  }
  for ( size_t i=0; i<aData.size(); i++ ) {
    v = aData[i];
    for ( size_t j=0; j<v.size(); j++ ) {
      cout << v[j] << "; ";
    }
    cout << endl;
  }
}
А можно с помощью fgets сделать? Он быстрее файлы читает.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru