Mam taką funkcję która ma wczytać linie z pliku, ale jeśli odpalę ją w pętli to zaczyna czytać od początku a nie od miejsca gdzie skończyła. Funkcja by miała wczytać plik potem wypisać w konsoli co wczytała i znowu wczytać plik ale za drugim razem wczytuje od początku. Da się jakoś zrobić żeby ominąć pierwsze 6 linijek w pliku, potem 12 itd czy jakoś tak? Plik wygląda tak:
1. Ile to 2+2
A. 1
B. 2
C. 3
D. 4
d
1. Ile to 2-2
A. 0
B. 2
C. 3
D. 4
a
1. Ile to 2*2
A. 0
B. 2
C. 3
D. 4
d
itd.
Zależy mi żeby funkcja czytała pojedynczo każde pytanie, 4 odpowiedzi i poprawną a nie cały plik na raz bo tak to wiem jak zrobić. Dzięki za pomoc.
nr_linii=1;
void Pytanie::wczytaj()
{
fstream plik;
string linia;
plik.open("quiz.txt", ios::in);
if(plik.good()==false)
{
cout<<"Nie ma pliku";
exit(0);
}
while(getline(plik,linia))
{
switch(nr_linii)
{
case 1: tresc=linia; break;
case 2: a=linia; break;
case 3: b=linia; break;
case 4: c=linia; break;
case 5: d=linia; break;
case 6: poprawna=linia; break;
}
nr_linii++;
if(nr_linii==7) {nr_linii=1; break;}
}
plik.close();
}
/////////////////////////////////////////////////
void Pytanie::zadaj()
{
cout<<tresc<<endl<<endl;
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
cout<<d<<endl;
cin>>odp;
}
PerlMonk4@4@1@2@3@4@Ile to 2+2<br/> 4@1@0@2@3@4@Ile to 2-2<br/> 4@4@0@2@3@4@Ile to 2*2<br/>
gdzie pierwsza liczba toIlość odpowiedzi
; druga liczba toodpowiedź poprawna
; dalej odpowiedzi tyle ile wskazuje pierwsza liczba; na końcu samo pytanie.