[C++] Wczytywanie danych z pliku

0

Witam serdecznie.

Muszę napisać program, którego zadaniem jest wczytywanie danych z pliku, linijka po linijce, i przetwarzanie ich tak, że każdą część linijki przypisze do osobnej, zadeklarowanej wcześniej zmiennej, np. dane z jednej linijki:
7173 Jan Brzyski 20304559917
wczyta jako:

id[0]=7173;
name[0]="Jan Brzyski";
code[0]=20304559917;

, a następnie postąpi tak samo ze wszystkimi linijkami w pliku (plik tekstowy).

Moje pytanie brzmi, ponieważ dopiero zaczynam się uczyć C++: jakich funkcji do tego użyć, co będzie potrzebne?

Z góry dziękuję za wszelką pomoc :)

0

Użyj getline() do uzyskiwania kolejnych linii oraz (z powodu, że nie wiesz jak wielki to będzie plik) to zamiast tablic użyj wektorów:

#include <string>
#include <fstream>
#include <iostream>
#include <vector>

int main()
{
    vector<string> v;
    string strLinia, strCalosc;
    ifstream in("plik.txt");
    while(getline(in,strLinia)) v.push_back(strLinia);
    return 0;
}

jeśli teraz chcesz się odwołać do którejś linijki to robisz to za pomocą pętli for dla v[i]. Żeby co trzecia informacja wchodziła "powtarzała cel" (czyli co trzecia linijka jest numerem telefonu i co trzecia linijka jest imieniem i nazwiskiem i co trzecia jeszcze czymś) to korzystasz z dzielenia z resztą na 3.

for(int i=0;i<v.size();i++)
{
    if (i%3==0) danaTel[i]=v[i];
    if (i%3==1) danaImie[i]=v[i];
    if (i%3==2) danaInna[i]=v[i];
}
0
Tulio napisał(a)

Żeby co trzecia informacja wchodziła "powtarzała cel" (czyli co trzecia linijka jest numerem telefonu i co trzecia linijka jest imieniem i nazwiskiem i co trzecia jeszcze czymś)

Zajebisty format pliku, szczególnie jak przyjdzie dodatkowe pole dodać [glowa]

0

niby masz rację... w takim razie można wczytywać po słowie while(in >> string)... czy inny wymyślony przez siebie sposób

0
Tulio napisał(a)

niby masz rację... w takim razie można wczytywać po słowie while(in >> string)

A linia w pliku będzie mieć postać:

69 Lech Aleksander Kaczyński 666
I puff, syntax error... Poza tym skąd będziesz wiedział, że linię skończyłeś przetwarzać?

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