Hej, mam problem dotyczący 2 odc obiektowego c++ (odczyt z pliku quizu za pomocą obiektów). Aktualnie pracuję na linux mint 20. Problem jest taki że program nie liczy prawidłowo punktów spotkałem się z takim rozwiązaniem (odpowiedz[0]==poprawna[0]) i rozwiązuje to problem liczenia tylko że przykładowo cout<<p[0].tresc; w funkcji głównej nie działa poprawnie . Wewnątrz metod też nie dział np cout<<tresc; w metodzie wczytującej .Całość próbowałem kompilować w codeblocks i visual studio z podobnymi rezultatami , nie pomogło też przeniesienie wszystkiego do jednego pliku.
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
class Pytanie
{
public:
string tresc;
string a,b,c,d;
int nr_pytania;
string poprawna;
string odpowiedz;
int punkt;
void wczytaj()
{
fstream plik;
plik.open("quiz.txt",ios::in);
if(plik.good()==false)
{
cout<<"Nie udalo sie otworzyc pliku!";
exit(0);
}
int nr_linii=(nr_pytania-1)*6+1;
int aktualny_nr=1;
string linia;
while(getline(plik,linia))
{
if(aktualny_nr==nr_linii) tresc=linia;
if(aktualny_nr==nr_linii+1) a=linia;
if(aktualny_nr==nr_linii+2) b=linia;
if(aktualny_nr==nr_linii+3) c=linia;
if(aktualny_nr==nr_linii+4) d=linia;
if(aktualny_nr==nr_linii+5) poprawna=linia;
aktualny_nr++;
}
plik.close();
}
void zadaj()
{
cout<<endl<<tresc<<endl;
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
cout<<d<<endl;
cout<<"------------------------"<<endl;
cout<<endl<<"Odpowiedz: ";
cin>>odpowiedz;
}
void sprawdz()
{
if(odpowiedz==poprawna)
{
punkt=1;
}
else punkt=0;
}
};
int main()
{
Pytanie p[5];
int suma=0;
for(int i=0; i<=4; i++)
{
p[i].nr_pytania=i+1;
p[i].wczytaj();
p[i].zadaj();
p[i].sprawdz();
suma+=p[i].punkt;
}
cout<<p[0].tresc;
//w codeblocks wyswietla sie samo"loat przechowuje" w visual studio code wcale
cout<<"KONIEC QUIZU! PUNKTY = "<<suma;
return 0;
}