Witam,
Wiem ze juz na forum były podobne pytania o ten kurs ale mój proble jest nieco inny. Cały kod jest zrobiony prawidłowo . Sprawdzałem czy odpowiednie linie z pliku są zapisane poprawnie w tablicach i są . Jednak jak kompiluję to pomimo iż udzielam dobrych odpowiedzi na pytanie to program twierdzi inaczej. Jedynym wyjątkiem jest ostatnie pytanie kiedy to zalicza punkt. Dodam iż programuję w Xcode i nie mam możliwości sprawdzenia kodu w środowisku windows. Ktoś ma jakiś pomysł na to ?? może to ja się gdzieś je...łem.
#include <iostream>
#include <unistd.h>
#include <cstdlib>
#include <fstream>
#include <algorithm>
using namespace std;
int main(int argc, const char * argv[]) {
string quizTitle;
string author;
string topic[4];
string ansA[5], ansB[5], ansC[5], ansD[5];
string goodAnswer[5];
int points = 0;
string answer;
string line;
int lineNumber = 1;
int answerNumber = 0;
fstream file;
file.open("quiz.txt", ios::in);
if (file.good()==false)
{
cout<<"File do not exist!"<<endl;
exit(0);
}
while(getline(file,line))
{
switch(lineNumber)
{
case 1: quizTitle = line; break;
case 2: author = line; break;
case 3: topic[answerNumber] = line; break;
case 4: ansA[answerNumber] = line; break;
case 5: ansB[answerNumber] = line; break;
case 6: ansC[answerNumber] = line; break;
case 7: ansD[answerNumber] = line; break;
case 8: goodAnswer[answerNumber] = line; break;
}
if (lineNumber == 8)
{
lineNumber = 2;
answerNumber++;
}
lineNumber++;
}
file.close();
file.clear();
for (int i=0; i<=4; i++)
{
cout<<endl<<topic[i]<<endl;
cout<<ansA[i]<<endl;
cout<<ansB[i]<<endl;
cout<<ansC[i]<<endl;
cout<<ansD[i]<<endl;
cout<<"Twoja odpowiedź: ";
cin>>answer;
transform(answer.begin(), answer.end(), answer.begin(), ::tolower);
if (answer == goodAnswer[i])
{
points += 1;
cout<<"Brawo poprawna odpowiedź!"<<endl;
}
else
cout<<"Niestety zła odpowiedź. Poprawna odpowiedź to: "<< goodAnswer[i]<<endl;
}
cout<<"Quiz zakończony uzyskałeś "<<points<<" z 5 punktów."<<endl;
return 0;
}