Witajcie!
Oto zawartość pliku tekstowego:
Numer;Powierzchnia;Rodzaj;Ulga
517/10;1293,99;B;B
517/11;971,09;B;A
517/12;1259,19;R;B
517/13;753,68;B;C
517/14;1107,02;R;C
517/15;1246,00;B;A
517/16;1225,80;B;A
Chciałbym zapisać te dane kolejno do tablic string, float, string string lub umożliwić sobie w jakiś sposób działanie na tych 4 danych w linii.
Kleiłem trochę kodu, ale albo źle wczytuje albo wywala błędem.
Jak zacząć wczytywać od drugiej linii?
Proszę o pomoc!
Ta wersja printuje same zera..
#include <iostream>
#include <fstream>
using namespace std;
double b[50000];
string a[50000],c[50000],d[50000];
int main()
{
fstream dzialki;
dzialki.open("DZIALKI.TXT", ios_base::in); // in, ze wprowadzam dane Z pliku do programu
if(!dzialki.good())
{
cout << "Blad!" << endl;
return -1;
}
int nr_linii=1;
string linia;
while(getline(dzialki, linia))
{
dzialki >> a[nr_linii-1] >> b[nr_linii-1] >> c[nr_linii-1] >> d[nr_linii-1];
nr_linii++;
cout << a[nr_linii-1] << " " << b[nr_linii-1] << " " << c[nr_linii-1] << " " << d[nr_linii-1] << endl;
}
cout << endl << a[3] << " " << b[3] << " " << c[3] << " " << d[3] << endl; // przykladowy
dzialki.close();
return 0;
}
Ta natomiast nie pobiera ostatniego stringa, i zamiast pobrać liczbę z przecinkiem to rozdziela ją tak
517/10 1293 ,99 B // powinno być jeszcze B, ale widzę że traktuje liczbę 1293,99 jako inta i stringa
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream dzialki;
dzialki.open("DZIALKI.TXT", ios_base::in); // in, ze wprowadzam dane Z pliku do programu
if(!dzialki.good())
{
cout << "Blad!" << endl;
return -1;
}
string linia;
while(getline(dzialki, linia))
{
double b;
string a,c,d;
dzialki >> a >> b >> c >> d;
cout << a << " " << b << " " << c << " " << d << endl;
}
dzialki.close();
return 0;
Miałem jeszcze 3 kod, działał w miarę dobrze, tylko sypał się gdy zamiast ; napotkał nową linię, co skutkowało zapisem
B
517/13
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream dzialki;
dzialki.open("DZIALKI.TXT", ios_base::in); // in, ze wprowadzam dane Z pliku do programu
if(!dzialki.good())
{
cout << "Blad!" << endl;
return -1;
}
string linia;
int nr_linii=2; // w notatniku od 1, tu od 2 bo warunki zadania
while(getline(dzialki, linia, ' ')) // istream & getline( char * odczytane_dane, streamsize ilosc_danych, char znak_konca_linii );
{
a[nr_linii-2] = linia;
cout << linia << " ";
nr_linii++;
}
dzialki.close();
return 0;
}