Po uruchomieniu programu wyskakuje mi komunikat program przestał działać. Kiedy usunę większość zawartości z pliku tekstowego kod działa ale nie wypisuję tych linijek które bym chciał i nie mogę znaleźć błędu w kodzie. Oto kod:
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <algorithm>
#include <string>
using namespace std;
string temat, nick, pytania[5], odpA[5], odpB[5], odpC[5], odpD[5], odpP[5], odpU[5];
int nrPyt = 0;
int punkty;
int main()
{
fstream plik;
plik.open("quiz.txt", ios::in);
if (plik.good()==false) {
cout << "Nie mozna odnalezc pliku!";
exit(0);
}
string linia;
int nrLin = 1;
while(getline(plik, linia)) {
switch (nrLin) {
case 1: temat = linia; break;
case 2: nick = linia; break;
case 3: pytania[nrPyt] = linia; break;
case 4: odpA[nrPyt] = linia; break;
case 5: odpB[nrPyt] = linia; break;
case 6: odpC[nrPyt] = linia; break;
case 7: odpD[nrPyt] = linia; break;
case 8: odpP[nrPyt] = linia; break;
}
if (nrLin==8) {
nrLin = 2;
}
nrLin++;
nrPyt++;
}
cout << temat << endl;
cout << nick << endl;
for (int i = 0; i<=nrPyt; i++) {
cout << pytania[i] << endl << odpA[i] << endl << odpB[i] << endl << odpC[i] << endl << odpD[i] << endl;
cin >> odpU[i];
transform(odpU[i].begin(), odpU[i].end(), odpU[1].begin(), ::tolower);
if (odpU[i]==odpP[i]) {
punkty++;
}
}
cout << endl << "Uzysakles" << punkty << "punktow";
return 0;
}
Oto zawartość pliku tekstowego:
informatyka
Michal
1. Ktora karta graficzna z podanych jest najwydajniejsza?
a) GTX 1080Ti
b) GTX 980Ti
c) GTX 950
d)RX 470
a
2. Jaka jednostka okresla sie miare wydajnosci CPU?
a) N
b) V
c) GHz
d) kWh
c
3. Jaka firma produkuje telefony z serii Galaxy?
a) apple
b) samsung
c) sony
d) HTC
b
4. Ktora z podanych jest nazwa przelocznika uzywanego w klawiaturach mechanicznych?
a) i7-7700K
b) r9 FuryX
c) z170
d) mx Red
d
5. Kto jest uwazany za tworce jezyka C?
a) Bill Gates
b) Steve Jobs
c) Dennis Ritchie
d) Paul Baran
c