Witam,
Mam kolejny problem z programem, który w zasadzie przepisałem z kursu na YT. Zawiera on odczytywanie z pliku tekstowego, to jest taki quiz z pytaniami. Prosiłbym o pomoc w prześledzeniu, dlaczego nie działa tak, jak miał działać, jak przedstawiono na filmie. Załączę dany plik .txt, który jest też tam używany.
P. S. Wybaczcie za ewentualny brak profesjonalizmu - uczę się dopiero Nie wiem, czy jest dobrej jakości ten kod, po prostu ciekawi mnie, dlaczego u mnie nie działa
#include <iostream> #include <fstream> #include <algorithm> #include <string> #include <cstdlib> 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() { string linia; int nr_linii=1; int nr_pytania=0; fstream plik; plik.open("quiz.txt", ios::in); if (plik.good()==false) { cout << "Nie udało się otworzyć pliku!" << endl; 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(); cout << "QUIZ" << endl; 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 odpowiedź to: "; cin >> odpowiedz; transform(odpowiedz.begin(), odpowiedz.end(), odpowiedz.begin(), ::tolower); if (odpowiedz==poprawna[i]) { cout << "Dobrze! Zdobywasz punkt!" << endl; punkty++; } else cout << "Źle! Brak punktu! Poprawna odpowiedź to: " << poprawna[i] << endl; } cout << endl << "Koniec quizu! Zdobyte punkty: " << punkty << endl; return 0; }
quiz.txt 556 bajtów 4 Ilość pobrań
Nie doprecyzowałem - sorry - wszystko się ładnie wyświetla - pierwsze pytanie, odpowiedzi, wpisuję swoją po zapytaniu i mimo że wpisałem "c" (bez cudzysłowu) np., to i tak pokazuje zła odpowiedź, poprawna to: c...