Witam wszystkie dobre duszyczki cieplutko,
mam pewien problem, którym chciałbym się podzielić z Waszymi wydajniejszymi głowami. Otóż poniżej znajduje się kod z odc. 7 (plik tekstowy), jest napisany wręcz idealnie, ale od godziny szukam jakiegokolwiek błędu i nic nie mogę znaleźć, nawet podmieniałem kod miejscami, żeby sprawdzić, o który fragment chodzi, lecz to na próżno...
Liczę, że któryś z Was, ma lepszy wzrok niż ja i żywiłby chęć niesienia pomocy. Błąd pokazuje jako w 60 wersie z opisem - "no match for 'operator>>', jednakże jest to absolutnie niemożliwe.
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <algorithm>
#include <string>
using namespace std;
string temat, nick;
string tresc[5];
string A[5], B[5], C[5], D[5];
string odpowiedz[5], poprawna[5];
int punkty=0;
int main()
{
fstream file;
file.open("quiz.txt", ios::in);
if(file.good()==false)
{
cout << "Nie ma takiego programu";
exit(0);
}
int nrlinii=1;
string linia;
int nrpyt=0;
while(getline(file, linia))
{
switch(nrlinii)
{
case 1: temat = linia; break;
case 2: nick = linia; break;
case 3: tresc[nrpyt] = linia; break;
case 4: A[nrpyt] = linia; break;
case 5: B[nrpyt] = linia; break;
case 6: C[nrpyt] = linia; break;
case 7: D[nrpyt] = linia; break;
case 8: poprawna[nrpyt] = linia; break;
}
if(nrlinii==8)
{
nrlinii=2;
nrpyt++;
}
nrlinii++;
}
file.close();
for (int i=0; i<=4; i++)
{
cout << endl << tresc[i] << endl;
cout << "A. " << A[i] << endl;
cout << "B. " << B[i] << endl;
cout << "C. " << C[i] << endl;
cout << "D. " << D[i] << endl;
cout << endl << "Twoja odpowiedz: ";
cin >> odpowiedz;
if(odpowiedz==poprawna[i])
{
cout << "Brawo! Otrzymales jeden punkt!" << endl;
punkty++;
}
else cout << "Zle! Brak otrzymanych punktow. Odpowiedz poprawna to " << poprawna[i]<<endl;
}
transform(odpowiedz.begin(), odpowiedz.end(), odpowiedz.begin(), ::tolower);
cout << "Koniec quizu! Suma otrzymanych punktow wynosi: " << punkty << endl;
return 0;
}