LINUX.ORG.RU

[c++] из хитрого файла в массивы чисел

 


0

0

В продолжение предыдущей темы.

Есть файл вида

4 45 54 43 
456 45 545 45 
66 65 76 
 
544 546 
45

Из него требуется получить 2 массива: массив с числами первого столбца не пустых строк и массив массивов последующих за ними чисел. То есть тут выйдет так:

{4, 456, 66, 544, 45}

{
  {45, 54, 43},
  {45, 545, 45},
  {65, 76},
  {546},
  {}
}
#include <iostream> 
#include <vector> 
#include <fstream> 
#include <sstream> 
using namespace std; 
 
int main() { 
    ifstream txtInput("input.txt", fstream::in);
    int lineNum = 0; 
    while (!txtInput.eof()) { 
        istringstream fullLine; 
        string tmpTxtLine; 
        getline(txtInput, tmpTxtLine); 
        ++lineNum; 
        fullLine.str(tmpTxtLine); 
 
        while (fullLine.good()) { 
            //тут будем заполнять массив, но пока что (временно) просто показываем по одному числу
            double x; 
            fullLine >> x; 
            cout << x << " "; 
        } 
        cout << endl; 
    } 
} 

Для упомянутого выше файла вывод такой:

 
4 45 54 43  
456 45 545 45  
66 65 76  
76  
544 546  
45  
45 

В конце лишнее число. Почему? Как делать лучше?

★★★★★

Последнее исправление: Obey-Kun (всего исправлений: 1)
Ответ на: комментарий от lester

> 2. static ifstream txtInput; ???

не понял, как это попало в код o_O. исправил.

Obey-Kun ★★★★★
() автор топика
Ответ на: комментарий от lester

а сам подход-то правильный? или лучше делать как-то иначе?

Obey-Kun ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.