Cześć. Staram się robić kurs c++ na kanale Pasja Informatyki. Przy jednym z odcinków pojawił się u mnie spory problem. Chodzi o wczytanie pliku txt, na którym są dane do quizu, który mamy stworzyć. Wydaje mi się, że mój kod wygląda dokładnie tak, jak ma wyglądać, ale mimo to przy próbie uruchomienia programu, ten wysypuje się. Dlatego podejrzewam, że winny jest tu, z jakiegoś powodu, plik txt (mimo że to zwykły plik w notatniku). Gdyby ktoś miał czas byłbym bardzo wdzięczny za rzut oka na kod i wspomniany plik oraz za ewentualne porady.
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <algorithm>
#include <string>
using namespace std;
string nick, temat;
string tresc [5];
string odpA [5], odpB [5], odpC [5], odpD [5];
string poprawna [5];
int punkty=0;
int main()
{
int nr_linii = 1;
string linia;
int nr_pytania=0;
string odpowiedz;
fstream plik;
plik.open("quiz.txt", ios::in);
if(plik.good()==false)
{
cout<<"Podany plik nie istnieje.";
exit(0);
}
while(getline(plik,linia))
{
switch(nr_linii)
{
case 1: nick = linia; break;
case 2: temat = linia; break;
case 3: tresc[nr_pytania] = linia; break;
case 4: odpA[nr_pytania] = linia; break;
case 5: odpB[nr_pytania] = linia; break;
case 6: odpC[nr_pytania] = linia; break;
case 7: odpD[nr_pytania] = linia; break;
case 8: poprawna[nr_pytania] = linia; break;
}
if (nr_linii=8)
{
nr_linii=2;
nr_pytania++;
}
nr_linii++;
}
plik.close();
for (int i=0; i<=4; i++)
{
cout<<endl<<tresc[i]<<endl;
cout<<tresc[i]<<endl;
cout<<"A. "<<odpA[i]<<endl;;
cout<<"B. "<<odpB[i]<<endl;;
cout<<"C. "<<odpC[i]<<endl;;
cout<<"D. "<<odpD[i]<<endl;;
cout<<"Twoja odpowiedz :";
cin>>odpowiedz;
transform(odpowiedz.begin(),odpowiedz.end(),odpowiedz.begin(),::tolower);
if(odpowiedz==poprawna[i])
{
cout<< "Dobrze!"<<endl;
punkty++;
}
else cout<<"Zle! Poprawna odpowiedz to: "<<poprawna[i]<<endl;
}
cout<<"Koniec quizu. Zdobyte punkty: "<<punkty<<"/5.";
return 0;
}