Witam. Pytanie dotyczy kursu C++, odcinek 7. Program wyświetla mi tylko jedno pytanie quizu, na które można odpowiedzieć dobrze i dostać punkt, jednak drugie pytanie już nie ma treści i są tylko do wyboru opcje odpowiedzi A, B, C i D oraz nie nalicza punktów. Na początku wyświetlało mi się tylko pierwsze pytanie z quizu, po przeanalizowaniu i napisaniu programu jeszcze raz (z pomocą filmu) wyświetla się tylko ostatnie pytanie.
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <algorithm>
#include <string>
using namespace std;
string temat, nick;
string tresc [5];
string odpA [5], odpB [5], odpC [5], odpD [5];
string poprawna [5];
string odpowiedz;
int punkty=0;
int main()
{
int nr_linii=1;
string linia;
int nr_pytania=0;
fstream plik;
plik.open("quiz.txt", ios::in);
if(plik.good()==false)
{
cout<<"Nie udalo sie otworzyc pliku!";
exit(0);
}
while (getline(plik,linia))
{
switch (nr_linii)
{
case 1: temat=linia; break;
case 2: nick=linia; break;
case 3: tresc [0]=linia; break;
case 4: odpA [0]=linia; break;
case 5: odpB [0]=linia; break;
case 6: odpC [0]=linia; break;
case 7: odpD [0]=linia; break;
case 8: poprawna [0]=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<<"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[0]==poprawna[i][0])
{
cout<<"Dobrze! Zdobywasz punkt!";
punkty++;
}
else cout<<"Zle! Brak punktu! Poprawna odpowiedz: "<<poprawna[i]<<endl;
}
cout<<endl<<"Koniec quizu! Zdobyte punkty: "<<punkty;
return 0;
}
Wiem, że w tym fragmencie w kodzie Pana Mirka w nawiasach kwadratowych jest [nr_pytania] ale kiedy próbowałem tak samo zrobić u siebie całkowicie mi nic nie działało.
case 1: temat=linia; break;
case 2: nick=linia; break;
case 3: tresc [0]=linia; break;
case 4: odpA [0]=linia; break;
case 5: odpB [0]=linia; break;
case 6: odpC [0]=linia; break;
case 7: odpD [0]=linia; break;
case 8: poprawna [0]=linia; break;