Podczas włączania quizu system wywala mi błąd i zamyka konsole. Nie wiem czy problem leży w kodzie czy w codeblocks choć w to drugie wątpię bo inne programy mi działają.I dlaczego na odcinku zmienna string:linia oraz int: nr_linii=1,nr_pytania=0 są już w int main() a nie przy reszcie zmiennych? Za odpowiedzi z góry dziękuję :D
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <conio.h>
#include <algorithm>
#include <string>
#include <windows.h>
using namespace std;
string temat, nick;
string tresc[5];
string OdpA[5],OdpB[5],OdpC[5],OdpD[5];
string poprawna[5];
int punkty=0;
string odpowiedz;
int main()
{
string linia;
int nr_linii=1,nr_pytania=0;
fstream plik;
plik.open("quiz.txt",ios::in);
if (plik.good() == false)
{
cout<<"Plik nie istnieje lub zostal przeniesiony!";
exit(0);
}
while(getline(plik,linia))
{
switch(nr_linii)
{
case 1: temat=linia; break;
case 2: nick=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<<"A. "<<OdpA[i]<<endl;
cout<<"B. "<<OdpB[i]<<endl;
cout<<"C. "<<OdpC[i]<<endl;
cout<<"D. "<<OdpD[i]<<endl;
odpowiedz=getch();
transform(odpowiedz.begin(),odpowiedz.end(),odpowiedz.begin(), ::tolower);
if(odpowiedz==poprawna[i])
{
punkty++;
}
}
cout<<"Zakonczyles test z wynikiem "<<punkty<<" na 5!";
getchar();getchar();
return 0;
}