Wczytywanie kolumny liczb z pliku .txt

Odpowiedz Nowy wątek
2020-03-24 16:45

Rejestracja: 1 tydzień temu

Ostatnio: 1 tydzień temu

0

Dzień dobry, muszę napisać program, który pobiera 3 kolumny danych (liczb pomiarowych) z pliku .txt i odczytuje je. Następnie, muszę "wyciągnąć" 2 kolumny z odczytanego pliku i stworzyć z nich osobny plik .txt. Niestety nie do końca wiem jak się do tego zabrać, gdyż standardowe file>>...; nie pomaga. Co zrobić w takiej sytuacji? Poniżej to co udałymi się juz stworzyć. Z góry dziękuję za pomoc

EDIT - dane pierwotnie były w pliku .dat, który przekonwertowałem na .txt. Dane są oddzielone tabulatorem

#include <iostream>
#include <fstream>
#include <string>
#include <sstream>

using namespace std;

string path;
string line;
int line_num = 1;
string tension, intensivity, foto;

/************************************************/ 
int main()
{
    ifstream file;
    cout<<"Path: ";
    cin >>path;

    file.open(path, ios::in);
    if(file.good() == false)
    {
        cout<<"File failed to open"<<endl;
        exit(0);
    }
    while(getline(file,line))
    {
    cout<<line_num++<<"."" "<<line<<endl;

    }

 /***********************************************/

  file.open( path, ios::in | ios::out );
  if( file.good() == true )
  {
  while (!(file.eof()))
  {
  file >>tension>>intensivity;
      cout << tension << endl;
      cout << intensivity << endl;
  }

      file.close();
  }

return 0;

}
edytowany 3x, ostatnio: cerrato, 2020-03-24 17:12

Pozostało 580 znaków

kq
2020-03-24 17:42
kq
Moderator C/C++

Rejestracja: 6 lat temu

Ostatnio: 1 minuta temu

Lokalizacja: Szczecin

0

element z danego rzędu.


Pozostało 580 znaków

2020-03-24 17:42

Rejestracja: 1 tydzień temu

Ostatnio: 1 tydzień temu

0

Czyli w zasadzie mogę zostawić to e1 a i tak wyrzuci mi wszystkie 300 wartości z kolumny tak?

Pozostało 580 znaków

kq
2020-03-24 17:43
kq
Moderator C/C++

Rejestracja: 6 lat temu

Ostatnio: 1 minuta temu

Lokalizacja: Szczecin

0

Co rozumiesz przez zostawić?


Pozostało 580 znaków

2020-03-24 17:45

Rejestracja: 1 tydzień temu

Ostatnio: 1 tydzień temu

0
vector<double> c1, c2, c3; // tension, intensity, foto; tutaj?
    double e1, e2, e3; // wtedy co tutaj? 
    ifstream f("data.txt");
    while(f >> e1 >> e2 >> e3) {
        c1.push_back(e1);
        c2.push_back(e2);
        c3.push_back(e3);
    }
    DBG_CONT(c1);
    DBG_CONT(c2);
    DBG_CONT(c3);

e1, e2, e3 są moimi nazwami, czyli tension etc? Czy c1 etc to nazwy? I co wtedy wstawić do C i E

edytowany 2x, ostatnio: mjk33, 2020-03-24 17:50

Pozostało 580 znaków

kq
2020-03-24 18:02
kq
Moderator C/C++

Rejestracja: 6 lat temu

Ostatnio: 1 minuta temu

Lokalizacja: Szczecin

0

cx to kolumny. ex to obecnie wczytywane elementy tych kolumn (z obecnej linii)


Pozostało 580 znaków

2020-03-24 18:25

Rejestracja: 1 tydzień temu

Ostatnio: 1 tydzień temu

0

Obecnie wyskakuje błąd: Use of undeclared identifier 'DBG_CONT'

 while(file >> e1 >> e2)
    {
      tension.push_back(e1);
      intensivity.push_back(e2);

    }
   DBG_CONT(tension);
   DBG_CONT(intensivity);
   }

Pozostało 580 znaków

kq
2020-03-24 18:55
kq
Moderator C/C++

Rejestracja: 6 lat temu

Ostatnio: 1 minuta temu

Lokalizacja: Szczecin

0

To są moje debugowe makra do pokazywania kodu. Staraj się zrozumieć otrzymany kod...


Pozostało 580 znaków

2020-03-25 21:48

Rejestracja: 1 tydzień temu

Ostatnio: 1 tydzień temu

0

Dziękuję za pomoc :)

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0