Как перевести текстовый файл чисел в числовой массив?

388
19 декабря 2016, 20:13

Всем привет)

Как можно перевести текстовый файл состоящий из вещественных чисел в числовой массив. Например Есть файл *.txt

1 3.14 2 5 6
3 4 5 6 7
2 3 4 8 1

Надо их заносить в массив числовой.

Пытался через getline только он берет одну строку и потом через функцию atoi, но он считывает пробелы еще.

for(int i = 0; i<3; i++)
{
In.getline(array[i],100);
}

Есть пример, но значения в виде кучи записывает...

ifstream in("input.txt");
int i;
while (file) {
  file >> i;
}
Answer 1

Вот так можно в вектор считать, буквально одной строчкой:

std::ifstream is(filename);
std::vector<double> a;
std::copy(std::istream_iterator<double>(s), std::istream_iterator<double>(),
    std::back_inserter(a));
Answer 2

Можно ещё так:

std::ifstream is(filename);
std::vector<double> a((istream_iterator<double>(is)),
                      istream_iterator<double>());

(проверка, недавно обсуждалось здесь)

READ ALSO
Неявное преобразование в C++

Неявное преобразование в C++

Добрый вечерУ меня снова вопрос по шаблонному классу

295
Com port, Аналог функции ReadFile()

Com port, Аналог функции ReadFile()

В стандартной библиотеке есть функция

287
Проблема передачи объекта в функцию на C++

Проблема передачи объекта в функцию на C++

Учу C++ на примере проекта (игра в пешки, суть и смысл игры значения не имеют)Есть объект Pawns (это обертка игры)

264
Создание окон в среде MFC

Создание окон в среде MFC

Продолжаю разбираться в MFC

258