Nieuruchamianie quizu w grze.
Ostatnio zmodyfikowano 2016-02-15 18:47
Pawlo3 Temat założony przez niniejszego użytkownika |
Nieuruchamianie quizu w grze. » 2016-02-15 17:39:48 Witam. Mam problem, ponieważ program, który ma uruchamiać quizy nie uruchamia żadnego quizu. Oto kod: #include <std> #include <fstream> class Pytanie { public: string pytanie; string odpowiedzi[ 4 ]; int poprawna; }; int main( int argc, char * argv[] ) { int poprawne = 0; int wszystkie = 0; string temat; temat = ""; int licz_lin = 1; ifstream plik_quizu; plik_quizu.open( "warszawa.quiz" ); getline( plik_quizu, temat ); licz_lin++; cout << temat << '\n'; Pytanie aktualne; for( NULL; 1; NULL ) { getline( plik_quizu, aktualne.pytanie ); licz_lin++; for( int i = 0; i < 4; i++ ) { getline( plik_quizu, aktualne.odpowiedzi[ i ] ); licz_lin++; } string tymcz; getline( plik_quizu, tymcz ); licz_lin++; aktualne.poprawna = atoi( tymcz.c_str() ); if( aktualne.pytanie == "" ) break; wszystkie++; cout << aktualne.pytanie << "\n"; for( int i = 0; i < 4; i++ ) { cout <<( i + 1 ) << ") " << aktualne.odpowiedzi[ i ] << '\n'; } int pop = 0; cin >> pop; if( pop == aktualne.poprawna ) poprawne++; } cout << "Quiz zakonczony!\n"; cout << "Zdobyles " << poprawne << " poprawnych odpowiedzi.\n"; cout << "Mogles zdobyc " << wszystkie << " poprawnych odpowiedzi.\n"; int proc =( poprawne / wszystkie * 100 ); int ocena = 0; if( proc < 30 ) ocena = 1; else if( proc < 50 ) ocena = 2; else if( proc < 75 ) ocena = 3; else if( proc < 91 ) ocena = 4; else if( proc <= 100 ) ocena = 5; cout << "Twoja ocena to: " << ocena << '\n'; cout << "Zdobyles " << proc << " procent!\n"; }
Wiem, wiem nie ukrywałem danych i nie szyfrowałem pliku. Nie 'trujcie' mi o tym, tylko powiedzcie, co tu może być źle i jak to poprawić. Struktura pliku quizu to: [temat quizu] [pytanie1] [odpowiedz1] [odpowiedz2] [odpowiedz3] [odpowiedz4] [nr-poprawnej-odpowiedzi-w-pytaniu-1] [pytanie 2] ...
// EDIT: <std> to nagłowek inkludujący standardowe nagłówki, stworzony przeze mnie. |
|
mateczek |
» 2016-02-15 18:47:52 U mnie działa. No może poza zrąbanymi nagłówkami. Ja bym zrobił jednak wyjście zaraz po odczytaniu pustej linijki w pliku (A skoro tak to powinna ta pusta linijka być) #include <iostream> #include <fstream> using namespace std;
for(;; ) { getline( plik_quizu, aktualne.pytanie ); if( aktualne.pytanie == "" ) break;
|
|
« 1 » |