Problem z pętlą, referencjami (?) - gra milionerzy
Ostatnio zmodyfikowano 2016-05-06 13:31
sparklemo7ion Temat założony przez niniejszego użytkownika |
Problem z pętlą, referencjami (?) - gra milionerzy » 2016-05-06 02:29:37 Heej, jestem początkującym programistą robiącym na razie jakieś proste programy w cmd. Po grze Lotto naszło mnie na zrobienie milionerów no i tu już napotkałem kłopot w pierwszej funkcji. #include <iostream> #include <cstdlib> #include <windows.h> #include <cstdlib> #include <fstream> using namespace std;
void plik( string * pytanie, string * odpa, string * odpb, string * odpc, string * odpd, string * pop, int & nr ) { fstream plik; string linia; int nr_linii = 1; plik.open( "milionerzy.txt", ios::in ); if( plik.good() == false ) { cout << "Plik nie istnieje!" << endl; exit( 1 ); } while( getline( plik, linia ) ) { switch( nr_linii ) { case 1: pytanie[ nr ] = linia; break; case 2: odpa[ nr ] = linia; break; case 3: odpb[ nr ] = linia; break; case 4: odpc[ nr ] = linia; break; case 5: odpd[ nr ] = linia; break; case 6: pop[ nr ] = linia; break; } if( nr_linii == 6 ) { nr++; nr_linii == 0; } nr_linii++; } plik.close(); }
int main() { string pytanie[ 15 ], odpa[ 15 ], odpb[ 15 ], odpc[ 15 ], odpd[ 15 ], poprawna[ 15 ]; int nr_pytania = 0; plik( pytanie, odpa, odpb, odpc, odpd, poprawna, nr_pytania ); cout << "Witamy w grze milionerzy!" << endl; cout << "Jestes gotowy? No to pytanie 1: " << endl; Sleep( 2000 ); cout << pytanie[ 0 ] << pytanie[ 5 ] << endl; cout << odpa[ 7 ]; cout << poprawna[ 0 ]; return 0; }
I jeszcze jedno.. Plik źródłowy wygląda tak jak w switch...case czyli linia po linii --> pytanie, odpa, odpb, odpc, odpd i poprawna odp. Problem polega na tym ze w funkcji main gdy chce wczytać inne dane niż pierwsza, początkowa wartość jakiejkolwiek tablicy, to program po prostu nie pokazuje nic. Program tylko pokazuje dane na ekran gdy cout << pytanie[ 0 ] cout << poprawna[ 0 ] a juz nie pokazuje przy wartościach tablicy większych od 0 jak np cout << odpa[ 7 ]; Może jestem ślepy, ale już tyle razy sprawdzam ten kod i nic nie moge wyłapać :// Tablice przez referencje przekazałem funkcji chyba prawidlowo prawda? |
|
carlosmay |
» 2016-05-06 05:53:21 Kompletnie nie rozumiem o co chodzi z wczytywaniem z pliku. Pokaż jak wygląda plik. Moim zdaniem wczytywanie jest niedopasowane do zawartości pliku. Pięć 15 elementowych tablic zamieniłbym na jedną tablicę struktur. struct Questions { std::string m_answerA; std::string m_answerB; std::string m_answerC; std::string m_answerD; std::string m_good_answer; };
int main() { Questions questions[ 15 ]; std::cout << questions[ 5 ].m_answer << std::endl; std::cout << questions[ 5 ].m_good_answer << std::endl; }
Może to być też klasa. |
|
mateczek |
» 2016-05-06 06:59:06 if( nr_linii == 6 ) { nr++; nr_linii = 0;
|
|
sparklemo7ion Temat założony przez niniejszego użytkownika |
» 2016-05-06 13:31:03 @carlosmay: Nie "kosztowałem" jeszcze programowania obiektowego, zabiorę się za to w najbliższym czasie :P @mateczek: Dzięki wielkie!:) Tyle problemu przez jeden znak równania, nie wiem jak mogłem nie zauważyć tyle razy sprawdzając ten kod... |
|
« 1 » |