Witam, robię kurs C++. Zrobiłem taki program i nie mam zielonego pojęcia co jest w nim nie tak. Otóż po uruchomieniu wczytują się pierwsze trzy linijki tekstu, potem pierwsze pytanie, ale po udzieleniu odpowiedź i zatwierdzeniu, program nie wyświetla kolejnych pytań i odpowiedź. Pokazuje się tylko na ekranie to co wypisałem ja, czyli "A. " itd. Sprawdzałem już go kilkakrotnie z tym co było pokazane w kursie na youtubie i dalej nic. Plik znajduje się w folderze z programem.
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <windows.h>
#include <algorithm>
#include <string>
using namespace std;
string w1, w2, w3;
string tresc[5];
string odpA[5], odpB[5], odpC[5], odpD[5];
string poprawna_odp[5];
string odp;
int punkty=0;
int main()
{
string linia;
int nr_pytania=0;
int nr_lini=1;
fstream plik;
plik.open("quiz.txt",ios::in);
if(plik.good()==false)
{cout<<"Nie znalezono pliku z pytaniami."<<endl;
exit(0);}
else
while(getline(plik, linia))
{
switch(nr_lini)
{
case 1: w1 = linia; break;
case 2: w2 = linia; break;
case 3: w3 = linia; break;
case 4: tresc[nr_pytania] = linia; break;
case 5: odpA[nr_pytania] = linia; break;
case 6: odpB[nr_pytania] = linia; break;
case 7: odpC[nr_pytania] = linia; break;
case 8: odpD[nr_pytania] = linia; break;
case 9: poprawna_odp[nr_pytania] = linia; break;
}
if (nr_lini==9) {nr_lini==3; nr_pytania++;}
nr_lini++;
}
plik.close();
cout<<w1<<endl;
cout<<w2<<endl;
cout<<w3<<endl;
for (int i=0; i<=4; i++)
{
cout<<endl;
Sleep(1000);
cout<<endl<<tresc[i]<<endl;
cout<<"A. "; cout<<odpA[i]<<endl;
cout<<"B. "; cout<<odpB[i]<<endl;
cout<<"C. "; cout<<odpC[i]<<endl;
cout<<"D. "; cout<<odpD[i]<<endl;
cout<<"Twoja odpowiedz to: ";
cin>>odp;
cout<<endl;
transform(odp.begin(),odp.end(),odp.begin(), ::tolower);
if(odp==poprawna_odp[i])
{cout<<"Brawo zdobywasz punkt!"<<endl;punkty++;}
else
cout<<"Zla odpowiedz. Poprawna odpowiedz to "<<poprawna_odp[i]<<". :("<<endl;
}
Sleep(500);
cout<<endl;
cout<<"Twoj wynik to: "<<punkty<<endl;
if(punkty==1)
cout<<" punkt."<<endl;
else if((punkty==2)||(punkty==3)||(punkty==4))
cout<<" punkty."<<endl;
else
cout<<" punktow."<<endl;
return 0;
}